如何使用angularjs为列表中的每个元素创建方法

时间:2015-03-19 21:50:39

标签: angularjs

我在angularjs中有一个列表

   $scope.URLList = [
  {url:'http://www.facebook.com', title : 'facebook'},{url:'http://www.twitter.com', title : 'twitter'}];

在我的HTML中:

  p(ng-repeat='url in URLList')
          a(href="{{url.url}}")       
            span {{url.title}} {{url.number}}

号码尚未定义。我需要这样做来计算它:

我想要一个方法:

  $scope.URLList[where item.url=link].number = function(){
    item.number=1;
    });
  }

并在

之后调用它
     $scope.URLList.push({url:'http://test.com,title:'test'});

提前谢谢。

1 个答案:

答案 0 :(得分:1)

我无法得到你需要的东西但是在ng-repeat中对元素执行一个函数你可以做这样的事情



myController = function($scope) {
  $scope.items = [{
    text: "a",
    num: 1
  }, {
    text: "b",
    num: 2
  }, {
    text: "c",
    num: 3
  }];
  $scope.addOne = function(item) {
    item.num += 1;
    
  }
  $scope.items.push({text: "z",num:4});
};
myController.$inject = ["$scope"];
angular.module("myApp", [])
  .controller("myController", myController);

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myController">
  <div ng-repeat="item in items" ng-init="addOne(item)">{{item.text}} :: {{item.num}}</div>
</div>
&#13;
&#13;
&#13;

如您所见,您可以将对象传递给函数并处理它,

但是如果你想迭代对象列表,你总是可以使用

angular.forEach(items,function(item){item + = 1;});