如何将指令附加到从控制器调用函数的另一个指令。

时间:2014-04-19 16:18:53

标签: angularjs events angularjs-directive angularjs-controller

我正在尝试附加一个指令,该指令在角度通过$watch函数触发事件时发生。第一个指令updater会在我的视图中插入自定义元素<confirmation />confirmation应该有相应的角度绑定。

插入后,我希望驻留在MainCtrl中的函数startChange()在新的确认指令中触发。

我做了一个plnkr http://plnkr.co/edit/BEozKyRZ0rJMz2e0jyp0?p=preview

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

首先关闭......

不应该有一个&#39;。&#39; (el)和($ scope)之间的

var ngEl = $compile(el).($scope);

删除点,它将修复未在控制台中定义的应用程序。

var ngEl = $compile(el)($scope);

接下来在startChange函数的控制台中获取错误,在命令范围内命名空间,并确保将其传递到隔离范围。

HTML:

  <confirmation message="Please Select something" state="state" startChange="startChange()" class="background-state-{{ state }}">someText</confirmation>

指令:

 scope : {
    message : '@',
    state: '=',
    startChange: '&'
 }

在链接器中:

scope.startChange();

我仍然不确定这是否是您想要的情况,因为其他指令更新并未在我能看到的任何地方使用...

以下是我的更改内容:http://plnkr.co/edit/8VoJSj7bHUkaEjUFrn3i?p=preview