从指令控制器到控制器的角度共享数据
Angular share data from directive controller to controller
我想知道是否有任何方法可以在没有事件的情况下将数据从指令控制器共享到控制器。假设我有:
.directive('someHandler', function () {
return {
controller: function () {
this.users = [];
}
}
})
这是家长指令,负责对子女指令沟通。我希望每次让我们说这个数组更改以告知主控制器。比如"="的功能;
这是我
的想法,希望它能奏效。尝试使用指令的控制器
.directive('someHandler', function () {
return {
//...previous arguments
controller: function ($scope, $element, $attrs) {
$scope.YourFunction = function () {
//Your code
}
}
});
然后打电话给$scope。控制器中的 YourFunction()。
加法
如果要使用父指令中的函数,则必须在子指令中包含 require 参数。通过这种方式,您可以建立层次结构关系并启用它们之间的通信。
之后,您必须使用链接函数从父控制器调用该函数。
在您的情况下,子指令将如下所示:
.directive('childsomeHandler', function () {
return {
//...previous arguments
require:"^someHandler", //here is inheritance to make communication between child and parent diretctive
link: function (scope, element, attrs, someHandlerCtrl) {
someHandlerCtrl.YourFunction();
}
});
阅读这篇文章,您将知道何时使用链接和控制器。有关更多详细信息,请阅读这篇精彩的文章:https://thinkster.io/egghead/directive-communication/
最后,我希望这对您有所帮助。
相关文章:
- 使用服务(AngularJS)在控制器之间共享数据
- AngularJS中的页面之间共享数据返回空
- 通过共享服务在两个不同ng应用程序中的控制器之间共享数据
- 使用Angularjs在两个不同页面的控制器之间共享数据
- 2ng控制器,并且需要在控制器之间共享数据
- 在控制器angular js之间共享数据
- 如何在 Angularjs 中的交叉模块之间共享数据
- 如何在rapaidjs中的视图之间共享数据
- AngularJS中共享数据服务初始化失败
- Flash Professional HTML5 Canvas:是否可以在HTML表单和Canvas之间共享数据
- 在HTML页面之间共享数据
- 在javascript(客户端)中跨多个窗口共享数据
- 节点在服务器之间共享数据&客户
- 无法在 AngularJS 中获取服务中的共享数据
- 在 AngularJS 中的控制器之间共享数据的惯用方法
- 如何在 AngularJS 中的两个独立模块之间共享数据
- Ember 使用 Mixin OR Service 进行共享数据
- 使用服务更新 2 个控制器之间的共享数据
- 如何在浏览器选项卡之间共享数据
- AngularJS:在控制器之间共享数据,具有服务和 restangular