以下代码是否会在AngularJS控制器中按预期工作?
updateProperty($scope.property1);
var updateProperty=function(property){
property+=1;
/* Will the above line change $scope.property1? */
}
如果上述语法不起作用,是否有另一种方法可以创建可用于更新任何范围属性的泛型函数?
答案 0 :(得分:2)
主要类型不能通过引用传递。尝试传递对象:
$scope.property1 = {
value: 1
};
updateProperty($scope.property1);
var updateProperty=function(property){
property.value += 1;
}
答案 1 :(得分:1)
假设这是在注入了$ scope的控制器内部运行,那么你可以这样做:
updateScopeProperty("property1");
function updateScopeProperty(propertyName) {
$scope[propertyName] += 1;
}