在AngularJS中打开/关闭手表

在AngularJS中打开/关闭手表,angularjs,watch,Angularjs,Watch,是否可以用简单的方式打开/关闭手表,或者发出手表现在应该/不应该运行的信号?我知道我可以注销手表,但我如何才能重新注册 在我的例子中,我有一个分层的选择列表,当父选择选项更改时,一个手表会重置子选择。当使用“选择”列表选择选项时,这可以正常工作,但是当尝试为父项和子项分配“选择”选项的值时,父项的监视将启动并重置子项选项 我放了一个plunker来证明这一点。尝试从列表中选择值,然后单击loadValues 这可能是错误的做法。我不完全理解您为什么要查看和取消查看这些值 我修改了你的plunk

是否可以用简单的方式打开/关闭手表,或者发出手表现在应该/不应该运行的信号?我知道我可以注销手表,但我如何才能重新注册

在我的例子中,我有一个分层的选择列表,当父选择选项更改时,一个手表会重置子选择。当使用“选择”列表选择选项时,这可以正常工作,但是当尝试为父项和子项分配“选择”选项的值时,父项的监视将启动并重置子项选项

我放了一个plunker来证明这一点。尝试从列表中选择值,然后单击loadValues


这可能是错误的做法。

我不完全理解您为什么要查看和取消查看这些值

我修改了你的plunk,看起来效果很好。我添加了一个额外的
ngChange
函数来监视父选择,然后从
userSelection
中删除子选择,并删除了所有
$watch
函数


再一次,我不明白你为什么要观察变量,因为你绝对不需要它来做你想做的事情。。。。如果您有另一个需要注册/注销手表的场景,请告诉我。

谢谢,使用ng change似乎可以做到这一点。这就是我想要的。这也显示了我对AngularJS有多新鲜。没问题。我自己只做过几个应用,所以我比较新。根据我目前的经验,我只使用$watch进行日志记录和调试。但我相信它有它的位置。