可以通过AngularJS中的引用传递范围属性吗?

时间:2015-10-26 08:57:20

标签: javascript angularjs angularjs-scope parameter-passing

以下代码是否会在AngularJS控制器中按预期工作?

 updateProperty($scope.property1);

 var updateProperty=function(property){
    property+=1;
    /* Will the above line change $scope.property1? */
 }

如果上述语法不起作用,是否有另一种方法可以创建可用于更新任何范围属性的泛型函数?

2 个答案:

答案 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;
}