通过引用从ng-repeat发送参数

时间:2016-07-10 15:00:43

标签: javascript angularjs

myJs:

var app = angular.module('app', []);
app.controller('myController', function($scope){
   $scope.bla = [{firstName: 6},{firstName: 7}];
   $scope.changeNumber = function(num){
     num = 10; 
   }
});

MYHTML:

<div ng-repeat="b in bla" ng-click=changeNumber(b.firstName)>{{b.firstName}}</div>

问题是:$scope.bla的值不会改变。那么,我如何通过引用而不是值传递b参数。 附:当然这不是我的代码,只是一个例子。

2 个答案:

答案 0 :(得分:1)

您可以将单击的数字的索引传递给changeNumber方法,然后使用索引更改原始对象。例如:

<div ng-controller = "myCtrl">
  <div ng-repeat="b in bla" ng-click="changeNumber($index)">{{b.firstName}}</div>
</div>

在控制器中:

var myApp = angular.module("myApp", []);
myApp.controller('myCtrl', ['$scope', function($scope){
    $scope.bla = [{firstName: 6},{firstName: 7}];
    $scope.changeNumber = function(index){
    $scope.bla[index].firstName = 10;
  }
}]);

请参阅此js fiddle

答案 1 :(得分:0)

如果要更改对象,请传递对象(b)本身而不是它的firstName属性。