angularjs – transcluded组件无法访问其父级所需的控制器
发布时间:2020-12-17 18:05:06 所属栏目:安全 来源:网络整理
导读:我有一个使用transclude功能的父组件.在其被转换的部分中,默认情况下有子组件: export class ParentController { // some logic here } angular.module('dmp').component('parentObject',{ bindings: { },controller: ParentController,transclude: true,te
我有一个使用transclude功能的父组件.在其被转换的部分中,默认情况下有子组件:
export class ParentController { // some logic here } angular.module('dmp').component('parentObject',{ bindings: { },controller: ParentController,transclude: true,templateUrl: 'test/parent.html' }); } export class ChildController { } angular.module('dmp').component('childObject',{ bindings: { },require: { parentCtrl: '^parentObject' },controller: ChildController,templateUrl: 'test/child.html' }); } index.html的: <parent-object> </parent-object> parent.html <div ng-transclude> <child-object></child-object> </div> 请注意< child-object>是在父对象的transclude部分 我收到以下错误: Controller 'parentObject',required by directive 'childObject',can't be found! 如果我这样做它按预期工作,但这不是我的情况. <parent-object> <child-object></child-object> </parent-object> 谢谢 编辑与gyc评论有关. 如果我理解正确,我可以删除< div ng-transclude> part而只是使用子对象而不进行转换.这没关系,但我想稍后说: <parent-object> <some-other-object></some-other-object> </parent-Object> 然后< child-object>将被< some-other-object>取代.如果我不使用转换,则不会发生< child-object>会保持. 解决方法
尝试在childObject定义中更改此项
require: { parentController: '^parentObject' } 也许parentCtrl不是parentController的已定义别名 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |