angularjs - ng-change on select 选项调用多个独特的功能

标签 angularjs

我的问题是,对于每个选择选项,我需要调用不同的函数,而不是同一个函数。

我从每个选择选项上的 ng-click 开始,但很快意识到这不起作用。然后我阅读了 Angular 关于 ng-options https://docs.angularjs.org/api/ng/directive/ngOptions 的文档。

该文档说明了使用 ng-change ,但它基于每个选择选项都应用了相同的功能这一事实。

在考虑了一会儿之后,我最终创建了一个在 ng-change 上调用的函数。这个函数只是决定调用哪个委托(delegate)。

$scope.determineAction = function() {
    var getDelegation = $injector.get($scope.selected.action);
    getDelegation.delegate();
  }

柱塞:
http://plnkr.co/edit/2Str6OqmFDH3kKdiW6i5

我已经为我的问题创建了一个解决方案,但我想知道这是否是正确的方法?我是否在 ng-options 中遗漏了允许许多不同函数调用的内容?

最佳答案

TL;DR: 是的,你在做正确的事。

是的,你在做正确的事。你不会错过 ng-options 的一些 secret 方面这允许您为每个项目指定不同的内容。事实上,这样做会违背 ng-options 的目的。 .它专门用于您正在处理的项目数量可变但需要对其执行的操作相同的情况。

your Plunker ,你正在证明这一点。您有一个可变的操作列表;它可以有许多 Action 要做。但是,您希望对它们执行的操作是相同的:当您选择一个新项目时,您希望运行一些由您的支持范围指定的操作。这正是 Controller 的本意!正如您所发现的,您需要做的就是以这样一种方式编写您的函数,它可以确定事物的当前状态并做出相应的 react 。您的 View 需要做的就是确保它正在设置该状态,以便您的 Controller 可以理解它。

你已经在做所有这些了,所以继续努力吧!

关于angularjs - ng-change on select 选项调用多个独特的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29629000/

相关文章:

javascript - 如何在angular js中使用if语句条件

javascript - Angular : How to handle two-part directive

javascript - 如何在 AngularJs 中从另一个 Controller 访问一个 Controller

javascript - 将带有点符号的属性(有时)传递给函数

angularjs - 如何为自定义指令实现 ng-change

angularjs - 数字列的排序无法正常工作 - Angular-ui-grid

javascript - Angular ui 路由器 : how to prevent access to a state

javascript - Angular Chain 许多请求

javascript - 在 Angular 中测试嵌套 $http 请求

angularjs - 使用 Protractor 多功能配置运行 e2e 测试,但限制最大 Webdriver 实例