Angularjs 转包组件无法访问其父级所需控制器
我有一个父组件正在使用转置功能。默认情况下,在其转置部分中有子组件:Angularjs 转包组件无法访问其父级所需控制器,angularjs,Angularjs,我有一个父组件正在使用转置功能。默认情况下,在其转置部分中有子组件: export class ParentController { // some logic here } angular.module('dmp').component('parentObject', { bindings: { }, co
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-object>
<child-object></child-object>
</parent-object>
谢谢
编辑与gyc注释相关的内容
如果我理解正确,我可以删除
部分,只使用子对象而不进行转换。这没关系,但我想稍后说:
<parent-object>
<some-other-object></some-other-object>
</parent-Object>
然后将
替换为
。如果我不使用转换,这将不会发生,并且
将保留。尝试在childObject
定义中更改此项
require: {
parentController: '^parentObject'
}
可能
parentCtrl
不是parentController
的定义别名,camelcased组件以破折号分隔为dom元素,因此它应该如下所示:
angular.module('dmp').component('childObject', {
bindings: {
},
require: {
parentCtrl: '^parent-object'
},
controller: ChildController,
templateUrl: 'test/child.html'
});
你能在代码段/小提琴中重现你的错误吗?我从来都不擅长创建代码段-我尝试过,但失败了,因为我使用的是typescript,无法使它工作:(不,这不是问题所在。
require: {
parentController: '^parentObject'
}
angular.module('dmp').component('childObject', {
bindings: {
},
require: {
parentCtrl: '^parent-object'
},
controller: ChildController,
templateUrl: 'test/child.html'
});