Uncaught TypeError: Невозможно прочитать свойство 'row' из undefined не работает в угловых js - PullRequest
0 голосов
/ 15 января 2019

Я хочу прочитать значения строки в datatable, для этого я реализовал что-то вроде этого.

$('#entry-grid').on('click', '.check', function () {
        var row = $(this).closest("tr");            
        var data = $scope.dtInstance.DataTable.row.data();
        alert(data);
    })   

и ниже моя таблица

<table id="entry-grid" datatable="" dtinstance="dtInstanceCallback" dt-options="dtOptions" dt-columns="dtColumns" class="table table-hover"></table>

Но при отладкеЯ получаю сообщение об ошибке:

Uncaught TypeError: Невозможно прочитать свойство 'строка' из неопределенного

, не знаю, почему оно выдает ошибку

ОБНОВЛЕНИЕ

Вот мой обновленный код anuglar, который я пытаюсь решить, но это не так.

var app = angular.module('MyApp', ['datatables']);
app.controller('homeCtrl', ['$scope', '$http', 'DTOptionsBuilder', 'DTColumnBuilder',
    function ($scope, $http, DTOptionsBuilder, DTColumnBuilder) {
        $scope.dtColumns = [
            DTColumnBuilder.newColumn(null, '').renderWith(function(data, type, full) {
                return '<input type="checkbox" class="check" data-object-id="'+full.objectid+'">'
            }),
            DTColumnBuilder.newColumn("OBJECTID", "ID"),
            DTColumnBuilder.newColumn("SERVICE_CODE", "Service Code"),
            DTColumnBuilder.newColumn("COND1", "Condition 1"),
            DTColumnBuilder.newColumn("COND2", "Condition 2"),
            DTColumnBuilder.newColumn("COND3", "Condition 3"),
            DTColumnBuilder.newColumn("SERVICE_TYPE", "Service type"),
            DTColumnBuilder.newColumn("REMARK", "Remark"),
            DTColumnBuilder.newColumn("DESCRIPTION", "Description")
        ]
        $scope.dtOptions = DTOptionsBuilder.newOptions().withOption('ajax', {
            url: "/home/getdata",
            type: "POST"
        })
        .withPaginationType('full_numbers')
        .withDisplayLength(10);

        $scope.dtInstance = {};
        $scope.dtIntanceCallback = function (instance) {
            $scope.dtInstance = instance;            
        }
        $scope.dtRebind = function () {
            $scope.dtInstance.DataTable.draw()
        }

        $('#entry-grid').on('click', '.check', function () {
            var row = $(this).closest("tr");
            var data = $scope.dtInstance.DataTable.row().data(); // here is the error of row undefined            
        })        
    }])

1 Ответ

0 голосов
/ 15 января 2019

Если я не ошибаюсь, правильная директива для использования должна быть dt-instance вместо dtinstance, так как вы обращаетесь к ней как $scope.dtInstance, которая в верблюжьей оболочке, так что эквивалентная директива будет в кебабе.

<table id="entry-grid" datatable="" dt-instance="dtInstanceCallback" dt-options="dtOptions" dt-columns="dtColumns" class="table table-hover"></table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...