Angular通过控制器将数据传递给指令

时间:2017-03-20 02:25:33

标签: javascript angularjs

我使用angular 1.5来构建一个可以在不同情况下使用的指令。我希望能够将控制器中的数据作为对象传递给指令。我的设置是这样的:

控制器:

function ControllerWrapper($scope, $location, $window){
    $scope.depth= 99;
    $scope.filter = {filters: [{column: 'stage', values: ['Closed']}]};
} 

HTML:

<div ng-controller="ControllerWrapper">
    <my-great-directive max-depth="{{depth}}" filters="filter"></my-great-directive>
</div>

指令返回

return {
        restrict: 'E',
        templateUrl: function(element, attributes) {
            return attributes.templateUrl;
        },
        link: function(scope, element, attributes) {
            var obj = scope.$eval(attributes.filters);
            var dir = scope.$eval(attributes.dir);

            scope.$watch("filters",function(newValue,oldValue) {
                if(scope.vm.dir != null){
                    scope.vm.dir.rows = scope.filterTreeGrid();
                }
            }, true);

        },
        controller: DirectiveController,
        controllerAs: 'vm',
        bindToController: true,
        scope: {
            maxDepth: '@',
            filters: '=?'
        }
    };

从我读过的内容filters: '='应该足以传递数据,但是在我尝试解决之后我得到了null。有什么建议吗?

0 个答案:

没有答案