Angularjs 从子指令访问父指令作用域的最佳方式是什么?

Angularjs 从子指令访问父指令作用域的最佳方式是什么?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,AngularJS模块和指令 HTML 我需要tabContent来访问tabPanel中的isOpen属性?实现这一点的最佳和最短方法是什么?将子指令定义更改为 .directive('tabContent', function () { return { scope: { isOpen: '=' }, template: '<div>Content</div>', link

AngularJS模块和指令

HTML


我需要tabContent来访问tabPanel中的isOpen属性?实现这一点的最佳和最短方法是什么?

将子指令定义更改为

.directive('tabContent', function () {
    return {
        scope: {
            isOpen: '='
        },
        template: '<div>Content</div>',
        link: function (scope, attr, element, tabApp) {
            alert(scope.isOpen);
        },
        require: '^tabApp'
    };

然后使用link函数接收tabApp,类似于将child指令定义更改为

.directive('tabContent', function () {
    return {
        scope: {
            isOpen: '='
        },
        template: '<div>Content</div>',
        link: function (scope, attr, element, tabApp) {
            alert(scope.isOpen);
        },
        require: '^tabApp'
    };
然后使用link函数接收tabApp,类似于

,您只需将is open从父指令传递到子指令

.directive('tabPanel', function () {
    return {
        scope: {
            isOpen: '='
        },
        template: '<div><div tab-content is-open="isOpen"></div>',
        //...
    };
})
选中此项

您只需将is open从父指令传递到子指令

.directive('tabPanel', function () {
    return {
        scope: {
            isOpen: '='
        },
        template: '<div><div tab-content is-open="isOpen"></div>',
        //...
    };
})

选中此项

您应该为指令/组件创建控制器,然后可以使用require属性和ctrls参数。请参见您应该为指令/组件创建控制器,然后可以使用require属性和ctrls参数。请看,谢谢,但这不是我想要的答案,因为可以放在HTML的任何地方。如果是嵌套结构,则“^tabApp”将不再有效。因此,请选择它。谢谢,但这不是我想要的答案,因为可以将放置在HTML的任何位置。如果是嵌套结构,“^tabApp”将不再工作。因此,选择它。哇,我从没想过答案会这么简单,谢谢。哇,我从没想过答案会这么简单,谢谢。