AngularJS:如何在指令中调用控制器函数(带参数)?

时间:2014-04-03 02:51:21

标签: angularjs

我已经知道的事情:在指令内调用没有参数的控制器函数。代码如下。

首先在指令定义中:

scope: {
    actionFunc: "&"
}

在指令模板中:

<button ng-click='actionFunc()'></button>

然后在控制器的HTML视图中

<my-directive action-func='controllFunction()'>

然后在控制器中

$scope.controllFunction= function() { 
    alert("controllFunction is called");
};

上面的代码效果很好。

但是,我想将参数传递给actionFunc。控制器应如下所示:

$scope.controllFunction= function(arg1, arg2) { 
    alert(arg1);
    alert(arg2); 
};

如何编写HTML视图和指令?

1 个答案:

答案 0 :(得分:1)

您需要使用控件名称在控件内传递参数。

在您的示例中,您应该执行以下操作:

HTML视图

<my-directive action-func='controllFunction(myArg1,myArg2)'>

指令模板

<button ng-click='actionFunc({myArg1: value1, myArg2: value2})'></button>

value1value2替换为适当的变量