如何在angularjs中加载div中的函数

时间:2014-09-18 22:41:25

标签: javascript jquery html angularjs asp.net-mvc-4

我试图在div元素中提取值,一旦得到值,我想调用一个函数来获取数据。我无法在div元素中调用函数 HERE是我的Html

为stats.html

<div class="ItemsList" data-ng-init="GetStatsData({{menu.result}})">
 {{myitems}}
<div>

RootController.js

function GetStatsData(resultval) {
 homeService.getitemsData(resultval)
        .success(function (data, status, headers, config) {
                        $scope.myitems = data
                });
}

我在直接调用函数时获取数据,但是当我尝试使用div标签并调用该函数时,我无法使其工作,它从不调用该函数。我的主要目标是在myitems中获取值,在函数中传递menu.result。

感谢您解决此问题的任何帮助

1 个答案:

答案 0 :(得分:0)

如文档ngInit中所述 The only appropriate use of ngInit is for aliasing special properties of ngRepeat

您应该更改从控制器调用GetStatsData的方式,如下所示

$scope.group.menuData = []   // set the array of data here

for(n = 0, n <  $scope.group.menuData.length, n++) {
   // wrap you async calls inside function when in loop
   $(function(index) {
       //CALL GetStatsData
       GetStatsData($scope.group.menuData[index]);
   })(n);
}

GetStatsData的实现几乎不需要修改

function GetStatsData(menu) {
     homeService.getitemsData(menu.result)
    .success(function (data, status, headers, config) {
                    menu.myitems = data
            });
}

现在你的视图html应该是这样的

<div class="ItemsList">
  {{menu.myitems}}
 <div>