Saya menggunakan tabel data angular js untuk proyek saya. saat ini saya mencoba untuk memberikan nilai ke fungsi onclick saya. Silakan periksa kode saya di bawah ini

$scope.loadRequestApproval = function () {

        $scope.dtOptions = DTOptionsBuilder.newOptions()
            .withOption('ajax', {
                dataType: 'json',
                contentType: "application/json; charset=utf-8",
                url: appConfig.apiUrl + "/finalizedAllList?reqTraceId=" + $scope.requestApprovalId,
                xhrFields: { withCredentials: true },
                type: 'POST',
                data: function (d) {
                    return JSON.stringify(d);

                },
                error: function (response) {
                    ajaxErrorHandler.handle(response);
                }
            })

            .withDataProp('data')
            .withOption('processing', true)
            .withOption('serverSide', true)
            .withOption('scrollY', '400px')
            .withOption('scrollX', '100%')
            .withOption('scrollCollapse', true)

            .withOption('drawCallback', function (settings) {

            });
        $scope.dtOptions.withOption('fnRowCallback',
            function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
                $compile(nRow, aData, iDisplayIndex, iDisplayIndexFull)($scope);
            });
        $scope.dtColumns = [
            DTColumnBuilder.newColumn('treaceId.traceId').withTitle('Trace ID'),
            DTColumnBuilder.newColumn('name').withTitle('Name'),
            DTColumnBuilder.newColumn('matchRatio').withTitle('Match Strength %'),
            DTColumnBuilder.newColumn('resultId').withTitle('Action').renderWith(function (data, type, full) {
                 
                full.resultId= '500asdx';

                return '<div class="btn-group-xs">' +
                    '  <button type="button" class="btn btn-flat btn-xs btn-success" ng-click="loadDataById(' + full.resultId+ ');">' +
                    '    <i class="ion ion-eye"></i>' +
                    '  </button>' +
                    '</div>';
            }).withClass('text-center').notSortable()
        ];

    };

Saya mencoba meneruskan resultId saya ke fungsi loadDataById saya. Tapi itu tidak berhasil.

Fungsi saya adalah seperti di bawah ini

   $scope.loadDataById = function (requestID) {
            console.log(requestID)
        };

Saya menemukan beberapa poin tentang masalah saya. Ketika saya menggunakan angka, log konsol dicetak. tetapi jika string-nya, log konsol tidak tercetak. Ex:

full.resultId= 500;
    console log print correctly as 500

full.resultId= '500asdx';
console log did not print.

Mengapa saya tidak bisa menggunakan string untuk melakukan ini. Saya pikir Anda bisa mendapatkan masalah saya. Terima kasih

0
Kumara 12 Mei 2021, 22:04

1 menjawab

Jawaban Terbaik

Seperti yang dibahas dalam komentar, satu-satunya hal yang hilang adalah koma terbalik untuk string dalam fungsi ng-click. Larutan:

ng-click="loadDataById(\'' + full.resultId + '\');"

ATAU

ng-click="loadDataById(' + "'" + full.resultId + "'" + ');"

Saya akan mengatakan pergi untuk yang pertama karena lebih bersih

1
shivaramanaiyer 12 Mei 2021, 19:25