等待为 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 for Ionic 更改网页中的选定选项?
如何使表格中的整行像ngtable(angularjs)中的超链接(在新选项卡等中打开)一样