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
参数。
附:当然这不是我的代码,只是一个例子。
答案 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属性。