Angularjs 使用参数执行范围绑定函数
如果指令中有这样一个函数:Angularjs 使用参数执行范围绑定函数,angularjs,angularjs-scope,Angularjs,Angularjs Scope,如果指令中有这样一个函数: scope: { loadChildren: "&" }, 我如何从我的控制器调用它并传递参数 $scope.loadChildren(param1, param2); 我的指令执行我传递的函数,但我没有看到任何参数 有没有办法这样通过他们 编辑re:rodyhaddad的答案 rodyhaddad为向绑定函数传递参数指明了方向,并给出了正确的格式。但是,为了使其正常工作,我还必须将参数键添加到HTML中,如下所示: <example
scope: {
loadChildren: "&"
},
我如何从我的控制器调用它并传递参数
$scope.loadChildren(param1, param2);
我的指令执行我传递的函数,但我没有看到任何参数
有没有办法这样通过他们
编辑re:rodyhaddad的答案
rodyhaddad为向绑定函数传递参数指明了方向,并给出了正确的格式。但是,为了使其正常工作,我还必须将参数键添加到HTML中,如下所示:
<example load-children="load(param1, param2)"></example>
当你这样做的时候
loadChildren:&”
这是生成函数()的代码
case'&':{
parentGet=$parse(attrs[attrName]);
范围[scopeName]=函数(局部变量){
返回parentGet(parentScope,locals);
};
打破
如您所见,传递给loadChildren
的任何内容都将成为传递给$parse
的局部变量
因此,正确的称呼方式是:
$scope.loadChildren({
param1:param1,
param2:param2
});
如果你想再举一个例子,下面是事件指令(如ngClick
)如何将$event
暴露到它们的表达式中:为了让它起作用,我还必须在HTML中添加参数-参见我的编辑。当参数也是一个函数时该怎么办?
$scope.load = function (param1, param2) {
debugger;
};