【问题标题】:Call Js Function after controller bind in Angular JS在Angular JS中绑定控制器后调用Js函数
【发布时间】:2023-03-18 12:58:02
【问题描述】:

APP.controller('ListController', ['$rootScope', '$scope', function($rootScope, $scope) { $scope.$on('$viewContentLoaded', function() {
// 初始化核心组件 });}]);

function pageElements(){ 
      $('#tt-datatable').dataTable(); 
}

APP.controller('Acctbl',['$http',function($http){
    var accdata=this;
    accdata.item=[];
    $http({
        url:_spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('Account')/items",
        method: "GET",
        headers: {"Accept": "application/json;odata=verbose"}
     }).success(function(data){
        accdata.item=data.d.results;
     });
}

]);

我想在控制器加载后运行 pageElements,当我第一次运行时

$scope.$on('$viewContentLoaded', function() {   

});}]);

我正在获取未找到结果的数据表,并且数据再次绑定

【问题讨论】:

  • 你想在 pageElements 函数中执行控制器吗?我认为这并非不可能
  • 我想在Acctbl控制器之后调用Javascript函数
  • 创建嵌套控制器或创建指令
  • @pixelbits 你能给我举个小例子吗?这将节省我很多时间,提前谢谢

标签: javascript angularjs angularjs-directive datatables angularjs-ng-repeat


【解决方案1】:

要使函数pageElements() 在您从http-request 获得结果后运行,您需要在控制器中移动该函数。然后在成功处理程序中调用它。

APP.controller('Acctbl',['$http',function($http){
    var accdata=this;
    accdata.item=[];
    $http({
         url:_spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('Account')/items",
         method: "GET",
         headers: {"Accept": "application/json;odata=verbose"}
    }).success(function(data){
         accdata.item=data.d.results;
         pageElements();
    });

    function pageElements(){ 
        $('#tt-datatable').dataTable(); 
    }
}

【讨论】:

  • 我已经做了同样的事情,但我得到“表中没有可用的数据”。参考附图
  • @Vamsikrishna,很难用您的代码示例进行调试。创建一个jsFiddle,我看看
猜你喜欢
  • 2018-04-13
  • 2014-10-23
  • 2014-12-29
  • 1970-01-01
  • 2018-04-18
  • 1970-01-01
  • 2015-08-10
  • 2014-06-14
  • 1970-01-01
相关资源
最近更新 更多