在单击第二个按钮之前,AngularJS数据不会刷新

时间:2019-06-19 10:20:51

标签: javascript jquery angularjs model-view-controller datatable

我想使用AngularJS添加jQuery数据表。

 $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();
            });
    };

我正在使用此搜索数据。第二次单击按钮后,此功能正常工作。

1 个答案:

答案 0 :(得分:1)

我认为这是观察者问题,请使用 setTimeout apply 进行修复:

 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()以确保更改生效。