加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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的已定义别名

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读