Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – transcluded组件无法访问其父级所需的控制器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用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的已定义别名

大佬总结

以上是大佬教程为你收集整理的angularjs – transcluded组件无法访问其父级所需的控制器全部内容,希望文章能够帮你解决angularjs – transcluded组件无法访问其父级所需的控制器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。