Angular 1.5组件可以轻松地从组件创建回调父级的回调。有没有办法可以从父控制器中的函数调用组件中的函数?
让我们说我的组件叫做task-runner,下面是父容器中的HTML。
<task-runner taskcategogyid=5></task-runner> <button type="button" ng-click="doSomethingInParent()">ParenttochildButton</button>
plunkr是here.我想在单击ParenttochildButton时,函数doSomethingInParent()调用组件中的remotefunc。
几种不同的方式:
>使用双向绑定(范围:{myattr:’=’})将对象作为属性传递给task-item-header指令,然后该指令可以添加一个函数供父控制器调用。>设置一个属性,该属性具有单向绑定(范围:{myattr:’@’}),然后是attrs。$观察对其的更改以触发操作,或双向绑定(范围:{myattr:’ =’})然后$ scope。$ watch更改它以触发操作。>让指令引发一个事件(范围:{raiseLoaded:’& onLoaded’}),它传递一个表示远程控制对象的对象,并在其上触发所需的操作。要引发事件,你可以在指令中调用类似raiseLoaded({remoteControl:remoteControlObj}),然后要监听事件,你要使用< task-item-header on-loaded =“setRemote(remoteControl) )“>假设您的父控制器上有setRemote()方法。 更新我刚刚意识到你的问题是针对更新版本的AngularJS,所以我不确定我的答案是否仍然适用。我现在暂时把它留在这里,但如果你发现它没用,我可以删除它。