Javascript 使用AngularJS,如何在视图和控制器同步特定更改后触发要执行的代码?

Javascript 使用AngularJS,如何在视图和控制器同步特定更改后触发要执行的代码?,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,具体地说,我在一些日期范围内将其转换为一对select(使用AngularJS ng repeat进行维护),然后使用jQuery UI的selectToUISlider将其转换为一个滑块。我假设SelectToIsLider的行为是未定义的,如果在运行时修改了它所操作的SelectToIsLider。有没有办法确保只有在AngularJS完成更新后才调用它?我还没有遇到任何问题,但我不确定我是否幸运,或者我的电脑没有在适当的时候出现延迟,等等 我可以想出两种解决方案,但两种方案都不是很好:

具体地说,我在一些日期范围内将其转换为一对select(使用AngularJS ng repeat进行维护),然后使用jQuery UI的selectToUISlider将其转换为一个滑块。我假设SelectToIsLider的行为是未定义的,如果在运行时修改了它所操作的SelectToIsLider。有没有办法确保只有在AngularJS完成更新后才调用它?我还没有遇到任何问题,但我不确定我是否幸运,或者我的电脑没有在适当的时候出现延迟,等等

我可以想出两种解决方案,但两种方案都不是很好:

  • 不要使用ng中继器;使用jQuery构建选择。但那将是悲哀的不得不这样做
  • 使用setTimeout延迟对SelectToIsLider的调用。但这似乎。。。不雅的

我不知道SelectToIsLider是如何工作的,但您需要一个指令。在该指令中,$watch用于更改列表并更新滑块,不管它是如何完成的

HTML示例:

<select jq-slider="myList" ng-options="item.val for item in myList"></select>

我不知道selectToUISlider是如何工作的,但你需要一个指令。在该指令中,$watch用于更改列表并更新滑块,不管它是如何完成的

HTML示例:

<select jq-slider="myList" ng-options="item.val for item in myList"></select>

啊,很有前途!非常感谢。我唯一不确定的是:SelectToIsLider是基于两个选择构建的。一个表示范围的起始值,另一个表示结束值。假设AngularJS按照HTML元素在页面上的显示顺序更新HTML元素是否安全?我可以将指令绑定到第二个SELECT并知道第一个也已更新吗?啊,非常有希望!非常感谢。我唯一不确定的是:SelectToIsLider是基于两个选择构建的。一个表示范围的起始值,另一个表示结束值。假设AngularJS按照HTML元素在页面上的显示顺序更新HTML元素是否安全?我是否可以将指令与第二个SELECT绑定,并知道第一个SELECT也已更新?