$ watch break ng-model binding(angularJS)

时间:2015-03-12 03:32:18

标签: angularjs

我有两个不同ng-model的文本框。我在第一个文本框中使用$ watch填充第二个文本框,但是当我修改第二个文本框并保存更改时,相同的值将保存在两个文本框中。我希望能够保存第二个文本框的更新值。如果我不使用$ watch,两个文本框都会得到正确的值。所以,我认为$ watch正在破坏绑定方式。有没有办法获得更新的价值并同时使用$ watch?谢谢!! 这是示例代码, HTML,

<input  type=text" ng-model='model1"/>
<input type="text" ng-model='model2"/>  
                                                                                                   and js, 
$scope.$watch('model1',function(){
$scope.model2 = $scope.model1;
  })  

这会将值从第一个文本框复制到第二个文本框,但如果我更新第二个文本框,则会保存旧值。

1 个答案:

答案 0 :(得分:0)

我弄清楚我做错了什么。当我想要更改值时我需要给出一个条件,否则它总会将它改为model1,因为我基本上将model1的值赋给了model2。一个简单的空检查就可以了,

$scope.$watch('model1',function(){
(if ($scope.model2 == null)){
   $scope.model2 = $scope.model1;
  })
}

感谢大家的帮助。