自定义指令的范围不会传递给子指令

时间:2013-11-06 14:27:19

标签: angularjs angularjs-directive angularjs-scope

很抱歉,如果我复制了现有的帖子,但是我搜索了主题,但无法找到我的案例说明。

我有一个包含内部指令(幻灯片)的自定义指令(carousel) Carousel指令接收范围,但我没有设法传递(或制作)Slides指令来理解范围。

如果我采取外部指令,幻灯片会看到并理解范围。但是,如果我在转盘中包含幻灯片,它们就会松开它,并且什么也得不到。

任何人都知道我做错了什么?

# Carousel Directive
define ['app'], (app) ->
    app.directive 'carousel', ->
        return {} =
        restrict: 'E'
        templateUrl: window.templateDir + 'carousel.html'
        replace: true
        scope:
            photo: '='
            leftSwipeAction: '&'
            rightSwipeAction: '&'
            clickAction: '&'
        link: (scope, element, attrs) ->
            #....

# Slides Directive
define ['app'], (app) ->
    app.directive 'preview', ->
        return {} =
            restrict: 'E'
            templateUrl: window.templateDir + 'preview.html'
            replace: true
            scope:
                photo: '='
                leftSwipeAction: '&'
                rightSwipeAction: '&'
                clickAction: '&'
            link: (scope, element, attrs) ->
                element.bind 'error', ->
                    element[0].src = scope.photo.download()
                element.bind 'dragstart', (e) ->
                    e.preventDefault()

1 个答案:

答案 0 :(得分:0)

我刚刚发现,通过像这样定义我的范围,我只将它限制在指令范围内,并且范围停止传递给任何内部指令子。

我删除了范围配置,现在可以访问所有指令。甚至是嵌套的。