如何从动画中获取组件的控制器范围?

时间:2016-10-15 21:14:03

标签: angularjs angularjs-scope

我有一个动画定义如此的组件:

angular
    .module('slider')
    .component('slider', {
        templateUrl: '/mytemplate.html',
        controller: function SliderController() {
            var self = this;
            self.direction = 'left';
        }
    })
    .animation('.slide-animation', function() {
        return {
            beforeAddClass: function (element, className, done) {
                var scope = element.scope();
                // The line below logs undefined???
                console.log(scope.direction);
            }
        };
    });

我正在尝试从控制器的范围访问一个值,但是它被返回为undefined,这让我相信我的范围是错误的。那是对的吗?如何从动画中获取控制器的范围?

1 个答案:

答案 0 :(得分:1)

在Genti的评论帮助下,我能够获得我所寻找的范围。

angular
    .module('slider')
    .component('slider', {
        templateUrl: '/mytemplate.html',
        controller: function SliderController() {
            var self = this;
            self.direction = 'left';
        }
    })
    .animation('.slide-animation', function() {
        return {
            beforeAddClass: function (element, className, done) {
                var scope = element.scope().$ctrl;
                console.log(scope.direction);
            }
        };
    });