【问题标题】:ng-change on select option calling multiple unique functionsng-change on select 选项调用多个独特的功能
【发布时间】:2015-04-14 13:42:06
【问题描述】:

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

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

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

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

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

Plunker: http://plnkr.co/edit/2Str6OqmFDH3kKdiW6i5

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

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    TL;DR:是的,你做对了。

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

    在your Plunker 中,您正是在展示这一点。您有一个可变的操作列表;它可以有许多动作要做。但是,您想要对它们执行的操作是相同的:当您选择一个新项目时,您想要运行一些由您的支持范围指定的操作。这正是控制器的本意!正如您所发现的,您需要做的就是以这样一种方式编写您的函数,它可以确定事物的当前状态并做出相应的反应。您的视图需要做的就是确保它正在设置该状态,以便您的控制器能够理解它。

    您已经完成了所有这些,所以请继续努力!

    【讨论】:

    • 感谢您的回复。很高兴知道我在正确的轨道上。
    猜你喜欢
    • 1970-01-01
    • 2016-11-17
    • 2016-06-04
    • 1970-01-01
    • 2013-12-07
    • 2013-06-05
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多