我一直在尝试创建一个通用的 function
改变 $scope
参数值的 Angular 。
我一直想知道为什么我不能将 $scope.var
作为 argument
传递给 function
例如:
webApp.controller ('VotesCtrl', function ($scope) {
$scope.param = 42;
change($scope.param);
function change(contextParam) {
contextParam = (Math.random()*100)+1;
};
});
当我运行这个函数时,$scope.param
仍然是 42。
除此之外还有其他选择吗:
webApp.controller ('VotesCtrl', function ($scope) {
$scope.param = 42;
change('param');
function change(contextParam) {
$scope[contextParam] = (Math.random()*100)+1;
};
});
最佳答案
简短的回答是“不要绑定(bind)到原始值”。参见 http://stsc3000.github.io/blog/2013/10/26/a-tale-of-frankenstein-and-binding-to-service-values-in-angular-dot-js/
var webApp = angular.module('webApp', []);
//controllers
webApp.controller ('VotesCtrl', function ($scope) {
$scope.param = { value: 42 };
change($scope.param);
function change(contextParam) {
contextParam.value = (Math.random()*100)+1;
};
});
关于angularjs - 将 $scope 变量传递给 AngularJS 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22510817/