我正在玩Angular并试图查看以上是否可行。
<div ng-controller="Ctrl">
<input ng-model="name">
<h1>{{name}}</h1>
<h1>{{age}}</h1>
</div>
var Ctrl = function($scope) {
$scope.name = "Kevin"
$scope.age = "26"
$scope.$watch('name', function() {
if($scope.name = 'Bob') {
$scope.age = '101';
};
});
};
但是,这样做只会将name
的值设置为“Bob”而不是“Kevin”。
我做错了什么?
答案 0 :(得分:2)
尝试在此行中使用==
代替=
:if($scope.name = 'Bob') {
:)
答案 1 :(得分:2)
这是您正在寻找的内容尝试此plunker
$scope.$watch('name', function(newval,old) {
// alert(old + newval)
if (newval == 'Kevin') {
$scope.age = 99;
} else if (newval == 'Bob') {
$scope.age = 101;
}
})
尝试将输入值从Kevin更改为Bob,反之亦然,以进行更改
答案 2 :(得分:1)
watch
函数内的回调应该采用如下参数:
$scope.$watch('name', function(newName) {
if (newName == 'Kevin') {
$scope.age = 99;
} else if (newName == 'Bob') {
$scope.age = 101;
}
})
以下是plunker:http://plnkr.co/edit/kTOXrSfRTXE7HCUsZfh2?p=preview
在“Bob”和“Kevin”之间更改$scope.name
会影响$scope.age