gpt4 book ai didi

angularjs - Angular 1.5,从父 Controller 调用组件中的函数

转载 作者:行者123 更新时间:2023-12-03 06:32:17 25 4
gpt4 key购买 nike

Angular 1.5 组件可以轻松地从组件创建对父级的回调。有没有办法可以从父 Controller 中的函数调用组件中的函数?

假设我的组件称为任务运行程序,下面是它在父容器中的 HTML。

<task-runner taskcategogyid=5></task-runner>

<button type="button" ng-click="doSomethingInParent()">ParentToChildButton</button>

该plunkr是here 。我希望当单击 ParentToChildButton 时,函数 doSomethingInParent() 调用组件中的remotefunc。

最佳答案

几种不同的方式:

  1. 将对象作为具有双向绑定(bind) ( scope:{myattr:'='} ) 的属性传递给 task-item-header 指令,然后指令可以向该指令添加一个函数以供父 Controller 调用。
  2. 设置一个具有单向绑定(bind) ( scope:{myattr:'@'} ) 的属性,然后设置 attrs.$observe对其进行更改以触发操作,或双向绑定(bind) ( scope:{myattr:'='} ),然后 $scope.$watch对其进行更改以触发操作。
  3. 让指令引发一个事件 ( scope:{raiseLoaded:'&onLoaded'} ),该事件传递一个代表远程控制对象的对象,该对象上有一个方法可以触发您想要的操作。要引发该事件,您可以调用类似 raiseLoaded({remoteControl: remoteControlObj}) 的内容。在指令中,然后要监听事件,您可以使用 <task-item-header on-loaded="setRemote(remoteControl)">假设您有 setRemote()父 Controller 上的方法。

更新我刚刚意识到您的问题是针对较新版本的 AngularJS,所以我不确定我的答案是否仍然适用。我暂时将其留在这里,但如果您发现它没有帮助,我可以将其删除。

关于angularjs - Angular 1.5,从父 Controller 调用组件中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37215547/

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