AngularJS数据直到第二个按钮单击才会刷新



我想使用 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(( 以确保更改生效。

最新更新