等待为 angularjs 中的选择生成新选项

Posted

技术标签:

【中文标题】等待为 angularjs 中的选择生成新选项【英文标题】:Waiting for new options to be generated for select in angularjs 【发布时间】:2012-08-14 17:54:22 【问题描述】:

我有一个select 元素,使用AngularJS 将ng-options 设置为某个表达式。如果选项发生变化,那么我需要确保用于显示 select 元素 also 的 jQuery 插件刷新。所以,如果选项发生了变化,那么我需要进行刷新调用。

有人知道怎么做吗?

【问题讨论】:

你是什么意思“选项更改”? span> 【参考方案1】:

我会引导你到angular-ui,我们有一个通用指令 ui-jq 可以做你想做的事。基本问题是 angular 不知道您的 jquery 插件会更新 angular 的模型。通常,您需要监听外部事件并使用$scope.apply let angular know。

【讨论】:

我不认为问题是 Angular 不知道 jQuery 插件看到的事件(在我的例子中是 this one)。我确实在我的模型上看到了更新的选项,并且代码确实将它们粘贴到了选择中。但是,如果我刷新插件,则尚未在底层 select 上设置选项。使用超时有效,但我不想依赖它。 如果使用超时有效,那么它是因为(我相信)摘要周期发生在间隔期间。我仍然支持使用 $scope.apply,因为它会导致摘要循环发生。我可能是错的,但我认为值得一试。如果您可以将 jsfiddle 或 plunker 示例放在一起,这将有所帮助。【参考方案2】:

我不确定这是否是您要问的,但是:如果您想观察模型的变化,请使用scope.$watch:

   scope.$watch('name', function(newVal) 
     // do something with the new value of scope.name
   );

但是,如果您专门使用 select,那么一定要检查 angular-ui,正如 Dan Doyon 所建议的那样。它有一个插件可以满足您的需求。

【讨论】:

以上是关于等待为 angularjs 中的选择生成新选项的主要内容,如果未能解决你的问题,请参考以下文章

禁用列排序不适用于多个 angularjs 数据表

如何使用 AngularJS for Ionic 更改网页中的选定选项?

如何使表格中的整行像ngtable(angularjs)中的超链接(在新选项卡等中打开)一样

如何使选定的值与 AngularJS 中的选项值不同?

angularjs 中的选项卡无法与 UI-Router 和 UI-bootstrap 一起正常工作

AngularJS:加载下拉列表从模型中选择