繁体   English   中英

角度范围变量在视图中未更新

[英]angular scope variable not updated in view

初学者的角度问题。 大概。

为什么

//1
function setValue(target, value) {
    target = value;
}
setValue($scope.var1, 25);

不起作用,但是

//2
function setValue(target, value) {
    $scope[target] = value;
}
setValue("var1", 25);

有吗

代码在控制器内部。 我试图使我的代码更具模块化,但是当我将变量作为字符串而不是作为引用传递时,我皱着眉头。 我尝试在前者中添加一个$scope.$apply() ,就像在其他地方向我建议的那样,但这在这里引发了错误。

非常感谢

$scope的值更改时,Angularjs会更新其视图。

因此,根据您的第一个代码块

function setValue(target, value) {
    target = value; 
}
setValue($scope.var1, 25);

因为$scope.var1是一个字符串,所以这里将按值传递它,并且在更新目标变量$scope保持不变,这就是为什么它没有被更改的原因。

在第二个代码块中

function setValue(target, value) {
    $scope[target] = value;
}
setValue("var1", 25);

在这里,您直接更改$scope以便更新视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM