修改 $watch 中的监视值
Modifying a watched value within a $watch
我有一个 <input ng-model='list' ng-list>
,我想确保此文本字段中没有出现重复项 - 如果列表包含重复项,我想自动删除它们。
我在控制器中放置了一个 $scope.$watch('list', function(listValues) {
,并尝试从 listValues
中删除任何重复项,但遇到了问题。在 watch 函数中,如果我设置 listValues = _.unique(listValues)
,$scope.list
的值永远不会改变。如果我尝试 $scope.list = _.unique(listValues)
,我已经 运行.
收到关于摘要周期的错误
我如何观察作用域变量的变化,并在发生变化时执行操作来更改新值?
这是一个不起作用的例子:http://plnkr.co/edit/b0bAuP1aXPg3HryxCD9k?p=preview
我认为这很简单。我应该使用其他方法吗?
在这种情况下,ng-change 可能是更好的方法。特别是 ng-change
的这个属性:
if the model is changed programmatically and not by a change to the
input value
如果您将 de-dupe 放在一个函数中,然后使用 ng-change
调用它,我想您会得到想要的结果。
我有一个 <input ng-model='list' ng-list>
,我想确保此文本字段中没有出现重复项 - 如果列表包含重复项,我想自动删除它们。
我在控制器中放置了一个 $scope.$watch('list', function(listValues) {
,并尝试从 listValues
中删除任何重复项,但遇到了问题。在 watch 函数中,如果我设置 listValues = _.unique(listValues)
,$scope.list
的值永远不会改变。如果我尝试 $scope.list = _.unique(listValues)
,我已经 运行.
我如何观察作用域变量的变化,并在发生变化时执行操作来更改新值?
这是一个不起作用的例子:http://plnkr.co/edit/b0bAuP1aXPg3HryxCD9k?p=preview
我认为这很简单。我应该使用其他方法吗?
ng-change 可能是更好的方法。特别是 ng-change
的这个属性:
if the model is changed programmatically and not by a change to the input value
如果您将 de-dupe 放在一个函数中,然后使用 ng-change
调用它,我想您会得到想要的结果。