对嵌套指令使用$ parse

时间:2015-05-04 06:45:19

标签: angularjs angularjs-directive

我有一个使用指令的指令:

<parent-directive onsuccess="callback(param)">
   <nested-directive onsuccess="callback(param)">
   </nested-directive>
</parent-directive>

嵌套指令使用$parse()来评估函数:

link:function(scope, element, attrs)
{
var fn = $parse(attrs.onsuccess);
fn(scope, {param: "myParam"});
}

我的问题:如何将函数设置为更高的一个指令(在父指令中),以便可以在父指令的范围内设置该函数(这将创建它自己的范围)

2 个答案:

答案 0 :(得分:1)

New Dev帮助了我。

就像添加:

一样简单

范围:{onsuccess:“&amp;”}

答案 1 :(得分:0)

您可以使用&#39;要求&#39; &#34; nestedDirective&#34;中的配置属性配置设置。这将使您能够访问&#34; parentDirective&#34;。

的控制器
{
require: '^parentDirective',
link: function (scope, element, attrs, parentCtrl) {
   parentCtrl.exec($parse(attrs.onsuccess))
 }
}

实施&#39; exec&#39;在parentDirective的控制器中运行,它将在其范围内执行此传递的函数。