Angularjs 角度自定义指令:访问链接函数中的父作用域属性

Angularjs 角度自定义指令:访问链接函数中的父作用域属性,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我想将angular中父作用域上的事件(单击或触摸)的名称设置为字符串。在子作用域上,我希望使用该字符串将事件与element.On绑定 例如: angular.module('directives', []) .directive('Sidebar', function () { 'use strict'; return { link: function (scope) { //determine

我想将angular中父作用域上的事件(单击或触摸)的名称设置为字符串。在子作用域上,我希望使用该字符串将事件与element.On绑定

例如:

angular.module('directives', [])
    .directive('Sidebar', function () {
        'use strict';

        return {
            link: function (scope) {
                //determines whether or not to use click or touch events
                //I want to use this to bind events with 
                //element.on(scope.sidebarClickEvent) in child scopes          
                scope.sidebarClickEvent = 'click';
            },
            restrict: 'E',
            templateUrl: 'sidebar.html'
        };
    })
    .directive('collapseBtn', function() {
        'use strict';

        return function (scope, element) {
            element.on(scope.sidebarClickEvent /* undefined */ , function () {
                //scope.sidebarClickEvent is available here, when the event handler executes
                scope.toggleSidebarCollapseState();
                element.find('i').toggleClass('icon-double-angle-right');
            });

        };
    })
问题是在绑定事件时父作用域上定义的属性不可用,因此在绑定事件时scope.sidebarClickEvent是未定义的。但是,如果我将其更改为常规单击事件,那么我可以在事件处理程序中获取该属性

我可以在事件绑定发生时访问作用域继承的属性吗?我甚至不确定我在这里是否正确地理解了范围继承,因此指出我理解中的错误也将不胜感激


谢谢

使用边栏和collapseBtn的HTML是什么?使用范围。$parent.sidebarClickEvent