角重js在ng-repeat上调用ng-init

时间:2014-09-03 07:52:20

标签: javascript angularjs

我在ng-repeat上调用ng-int(),如下所示:

<ul class="title_page1" style="margin:0; padding:0;">
  <li  ng-init='some(val.id);'  ng-repeat="(key,val) in menu">{{val.name}}</span><span>{{size}}</span></li>
</ul>

我在菜单中有三个元素,通过这个ng-init被调用每个ng-repeat但是来自某些(val.id)的{{size}}。所有3个元素的大小相同。请帮我解决这个问题。

$scope.some={function(id){

     return $http({
         url : 'url+id',
         method : 'GET',
         async : false,
     }).success(function(data) { 
        $scope.size = data.length;
    });    
};
$scope.menu=[{java,php,micro}];

这就是我正在做的事情,但我得到的所有元素的大小是相同的。 但我在谷歌看到,但我没有从谷歌得到任何结果

1 个答案:

答案 0 :(得分:3)

您正在检索3个ID的数据,但是您将它们保存在控制器所在的范围内,该范围只能有一个size变量。我要做的是将size变量保存到val对象中。

<ul class="title_page1" style="margin:0; padding:0;">
  <li  ng-init='some(val);'  ng-repeat="(key,val) in menu">{{val.name}}</span><span>{{val.size}}</span></li>
</ul>

$scope.some={function(val){

     return $http({
         url : 'url'+val.id,
         method : 'GET',
         async : false,
     }).success(function(data) { 
        val.size = data.length;
    });    
};
$scope.menu=[{java,php,micro}];