javascript – 从它的父[angularJS]触发子指令中的函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 从它的父[angularJS]触发子指令中的函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1908字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 从它的父[angularJS]触发子指令中的函数](/upload/InfoBanner/zyjiaocheng/745/3104ccb6788949c7bd892237d38d91b1.jpg)
因此,当在子指令中使用指令属性require:’^ ParentCtrl’时,我总是反向执行此操作.使用require然后调用父函数;但是,我需要反过来这样做.
题:
如何从父指令触发子指令中的函数执行.
注意:
1.儿童指令在链接中没有任何功能:
2.基本上我想要一个反向要求.
家长指令:
'use strict';
angular.module('carouselApp')
.directive('waCarousel', function() {
return {
templateUrl: 'views/carousel/wa.carousel.html',
controller: function($scope) {
var self = this;
// this function is being called based on how many pages there are
self.carouselElLoaded = function(result) {
var count = 1;
Carousel.params.pageRenderedLength += count;
//when all the pages are loaded
if (Carousel.params.pageRenderedLength === Carousel.params.pageLength) {
Carousel.params.carouselReady = true;
// !!!!!!!! Trigger will go here!!!!!!!!!//
ChildCtrl.drawHotspots(); // (**for placement only**)
} else {
Carousel.params.carouselReady = false;
}
};
}
}
})
儿童指令:
'use strict';
angular.module('carouselApp')
.directive('waHotspots', function() {
return {
require: '^waCarousel',
link: function (scope, element, attrs, ctrl) {
//call this directive based on how
scope.drawHotspots = function () {...};
}
})
解决方法:
这可以通过让父控制器通过您创建的定义良好的API与子控制器通信来实现.我们的想法是,您希望通过让每个相应的控制器尽可能少地了解彼此,保持父和子指令之间的松散耦合,但仍然有足够的知识来完成工作.
要实现这一点,需要来自子指令的parent指令,并让子指令将自己注册到父控制器:
儿童指令:
require: '^parentDirective',
controller: function(){
this.someFunc = function() {...}
},
link: function(scope,element,attr, parentCtrl){
parentCtrl.register(element);
}
然后在你的父指令中,实现register函数,并获取子控制器,并在需要时调用子函数:
父指令:
controller: function(){
var childCtrl = undefined;
this.register = function (element) {
childCtrl = element.controller();
}
this.callChildFunc = function (){
childCtrl.someFunc();
}
},
link: function (scope,element){
var ctrl = element.controller();
ctrl.callChildFunc();
}
内容总结
以上是互联网集市为您收集整理的javascript – 从它的父[angularJS]触发子指令中的函数全部内容,希望文章能够帮你解决javascript – 从它的父[angularJS]触发子指令中的函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。