我的问题是,对于每个选择选项,我需要调用不同的函数,而不是相同的函数。
我从 ng-click 开始,单击每个选择选项,但很快意识到这不起作用。然后我阅读了 Angular 关于 ng-options 的文档https://docs.angularjs.org/api/ng/directive/ngOptions https://docs.angularjs.org/api/ng/directive/ngOptions
该文档说明了如何使用 ng-change,但它是基于每个选择选项都应用相同的函数这一事实。
经过一番思考后,我最终创建了一个在 ng-change 上调用的函数。该函数只是确定要调用哪个委托。
$scope.determineAction = function() {
var getDelegation = $injector.get($scope.selected.action);
getDelegation.delegate();
}
笨蛋:http://plnkr.co/edit/2Str6OqmFDH3kKdiW6i5 http://plnkr.co/edit/2Str6OqmFDH3kKdiW6i5
我已经为我的问题创建了一个解决方案,但我想知道这是否是正确的方法?我是否在 ng-options 中遗漏了一些允许许多不同函数调用的东西?
TL;DR:是的,你正在做正确的事。
是的,你正在做正确的事。你并没有错过一些秘密的方面ng-options
这允许您为每个项目指定不同的内容。事实上,这样做就违背了目的ng-options
。它专门针对您正在处理的项目数量可变但需要对它们执行的操作相同的情况。
In 你的笨蛋 http://plnkr.co/edit/2Str6OqmFDH3kKdiW6i5,你正在准确地证明这一点。你有一个可变的行动列表;它可以执行任意数量的操作。但是,您想要对它们执行的操作是相同的:当您选择一个新项目时,您希望运行支持范围指定的某些操作。这正是控制器的目的!正如您所发现的,您所需要做的就是编写函数,使其确定事物的当前状态并做出相应的反应。您的视图需要做的就是确保它正在设置该状态,以便您的控制器能够理解它。
您已经完成了所有这些,所以请继续坚持!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)