Data binding ng单击范围属性未按预期更新
我不知道角度如何更新范围上的属性。这是我的代码的一个人工版本。我希望Data binding ng单击范围属性未按预期更新,data-binding,angularjs,angularjs-ng-click,Data Binding,Angularjs,Angularjs Ng Click,我不知道角度如何更新范围上的属性。这是我的代码的一个人工版本。我希望$scope.name在$scope.open更改时自动更新 查看 {{name}} 控制器 var MyCtrl=function($scope){ if(typeof$scope.open==‘未定义’){ $scope.open=true; } $scope.name=$scope.open?“伊利亚”:“蔡利”; $scope.click=函数(){ $scope.open=!$scope.open; }; };
$scope.name
在$scope.open
更改时自动更新
查看
{{name}}
控制器
var MyCtrl=function($scope){
if(typeof$scope.open==‘未定义’){
$scope.open=true;
}
$scope.name=$scope.open?“伊利亚”:“蔡利”;
$scope.click=函数(){
$scope.open=!$scope.open;
};
};
我可以在单击回调中更新$scope.name
,但我希望angular能帮我做到这一点
var MyCtrl=function($scope){
if(typeof$scope.open==‘未定义’){
$scope.open=true;
$scope.name=“伊利亚”;
}
$scope.click=函数(){
$scope.open=!$scope.open;
$scope.name=$scope.open?“伊利亚”:“蔡利”;
};
};
我是做错了什么,还是这是预期的行为?如果您希望名称
在打开
更改时自动更新,您可以使用:
注册在watchExpression更改时执行的侦听器回调
像这样:
var MyCtrl=function($scope){
$scope.$watch('open',function(){
$scope.name=$scope.open?“伊利亚”:“蔡利”;
});
$scope.open=typeof$scope.open=='undefined'?true:$scope.open;
$scope.click=函数(){
$scope.open=!$scope.open;
};
};
工作示例:如果希望在打开时自动更新名称
,可以使用:
注册在watchExpression更改时执行的侦听器回调
像这样:
var MyCtrl=function($scope){
$scope.$watch('open',function(){
$scope.name=$scope.open?“伊利亚”:“蔡利”;
});
$scope.open=typeof$scope.open=='undefined'?true:$scope.open;
$scope.click=函数(){
$scope.open=!$scope.open;
};
};
工作示例: