有没有一种动态更改ng-click调用方法的方法?
类似这样:
类似这样:
ng-click = "{{functionCalled}}"
然后通过以下方式声明函数:
$scope.functionCalled = "callThisFunction(param)";
ng-click = "{{functionCalled}}"
然后通过以下方式声明函数:
$scope.functionCalled = "callThisFunction(param)";
ng-click='myFunction(myParams)'
。无论如何,这是您想要实现的示例:http://jsfiddle.net/8cvGt/2/
<div ng-app='foo' ng-controller='ctrl'>
<div ng-click='this[myVar]()'>{{ bar }}</div>
</div>
var app = angular.module('foo',[]).controller('ctrl',function($scope) {
$scope.myVar = 'callIt';
$scope.bar = 'before';
$scope.callIt = function() {
$scope.bar = 'after';
}
});
ng-click="dispatchFunction(param)"
那么
$scope.functionToCall = 'callThisFunction';
$scope.dispatchFunction = function(param) {
switch($scope.functionToCall) {
case (callThisFunction): callThisFunction(param);
};
编辑:实际上,使用完整的调度表进行操作:
http://designpepper.com/blog/drips/using-dispatch-tables-to-avoid-conditionals-in-javascript
这篇文章介绍如何在JavaScript中使用调度表来避免条件语句。建议采用完整的调度表来实现该功能。
this[myFunc](myParam)
- Patrickthis[myFunc]('quiz.ans1')
进行调用,否则它不应该使用变量名。 - Patrickng-include='myViewVariable + "button_section.html"'
,扩展视图以包括该部分,或者在视图之间具有一致的 API,可以像ng-click='done()'
这样调用 done 函数来确定它需要什么参数。不知道应该选择哪种方法,因为不了解应用程序的更多信息。 - Patrick