gpt4 book ai didi

angularjs - 使用参数执行范围绑定(bind)函数

转载 作者:行者123 更新时间:2023-12-04 04:45:12 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to call a method defined in an AngularJS directive?

(13 个回答)


8年前关闭。




如果我在指令中有这样的功能:

 scope: {
loadChildren: "&"
},

如何从我的 Controller 调用它并传递参数?
$scope.loadChildren(param1, param2);

我的指令执行我传递的函数,但我没有看到任何参数。

有没有办法像这样通过它们?

编辑回复:rodyhaddad 的回答

rodyhaddad 指出了将参数传递给绑定(bind)函数的正确格式。但是,为了使其正常工作,我还必须将参数键添加到我的 HTML 中,如下所示:
<example load-children="load(param1, param2)"></example>

然后在我的 Controller 上我可以看到参数:
$scope.load = function (param1, param2) {
debugger;
};

最佳答案

当你这样做

  loadChildren: "&"

这是生成函数的代码 ( source code)

case '&': {
parentGet = $parse(attrs[attrName]);
scope[scopeName] = function(locals) {
return parentGet(parentScope, locals);
};
break;

如您所见,无论您传递给 loadChildren将成为 locals传递给 $parse .

所以正确的调用方式是:

$scope.loadChildren({
param1: param1,
param2: param2
});

如果您想要另一个示例,以下是事件指令(如 ngClick )如何公开 $event他们的表情: source code

关于angularjs - 使用参数执行范围绑定(bind)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18305247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com