ng更改调用多个唯一函数的select选项



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

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

文档说明了使用ng更改,但它是基于这样一个事实,即每个选择选项都应用了相同的功能

经过一段时间的思考,我最终创建了一个函数,该函数在ng更改时被调用。此函数只确定调用哪个委托。

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

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

我已经为我的问题找到了解决方案,但我想知道这是否是正确的方法?我是不是在ng选项中缺少了允许许多不同函数调用的内容?

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

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

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

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

最新更新