Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 指令如何通过控制器进行通信?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在本文档中: http://docs.angularjs.org/guide/directive表示指令可能由控制器相互通信。

我不明白,他们如何与控制器沟通?有没有任何示例或演示?

也许你对使用指令控制器发生路由更改时创建的控制器感到困惑。该部分只是在谈论指令控制器,所以该部分意味着如果您在同一个HTML元素上有两个指令,则可以通过要求彼此控制器进行通信。

一个很好的例子就是如果你创建一个需要与ng-model通信的指令。由于ng模型暴露了控制器,因此您可以要求它:

@H_98_9@myApp.directive('myDirective',function() { return { require: 'ngModel',link: function($scope,elem,attrs,ngModelCtrl) { // Here you can listen to different DOM events,and // call ngModelCtrl when the model value needs to update } } });

和HTML:

<input type="text" ng-model="mymodel" my-directive>

您的指令可以通过在您的指令函数返回的对象中实现它来暴露控制器,如下所示:

@H_98_9@myApp.directive('myDirective1',function() { return { link: function($scope,attrs) { },controller: function() { this.sayHello = function() { alert("Hello!"); } } } }); myApp.directive('myDirective2',function() { return { require: 'myDirective1',myDirective1Ctrl) { myDirective1Ctrl.sayHello(); } } });

和HTML:

<input type="text" my-directive2 my-directive1>

您也可以通过编写require:’^ myParentDirective’来要求来自父指令的指令控制器,如下所示:

@H_98_9@myApp.directive('myDirective1',function() { return { require: '^myDirective1',myDirective1Ctrl) { myDirective1Ctrl.sayHello(); } } });

和HTML:

<div my-directive1>
    <div my-directive2></div>
</div>

大佬总结

以上是大佬教程为你收集整理的angularjs – 指令如何通过控制器进行通信?全部内容,希望文章能够帮你解决angularjs – 指令如何通过控制器进行通信?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。