1

我正在玩 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”。

我究竟做错了什么?

4

3 回答 3

2

尝试在这一行 中使用==而不是: :)=if($scope.name = 'Bob') {

于 2013-08-03T12:46:23.893 回答
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,反之亦然以进行更改

于 2013-08-03T13:10:55.737 回答
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$scope.name在“Bob”和“Kevin”之间变化会影响$scope.age

于 2013-08-03T13:02:04.723 回答