我想使用 AngularJS 添加 jQuery datatable。
$scope.SearchData = function () {
var myData = new Object();
myData.EmployeeCode = $("#Person").val();
$http.post("/admin/GetData", myData)
.then(function (response) {
$scope.itemData = response.data.Initiator;
$('#dtBasicExample').DataTable();
});
};
我正在使用这个搜索数据。这在第二次单击按钮后起作用。
我认为这是观察者的问题,请使用 setTimeout 并申请修复它:
myApp.controller('myController', function($scope, $timeout){ // just example
$timeout(()=>{
$('#dtBasicExample').DataTable();
})
或
setTimeout(()=>{
$('#dtBasicExample').DataTable();
$scope.$apply(); //this triggers a $digest
})
Angular 无法知道您可能会更改什么。在这种情况下,您有责任手动调用 $apply((,这会触发$digest循环。
同样,如果你有一个指令来设置 DOM 事件侦听器并在处理程序函数中更改一些模型,则需要调用 $apply(( 以确保更改生效。