如何避免使用angular指令链接功能,使用angular 1.5组件

时间:2016-08-04 15:22:13

标签: angularjs typescript1.8 angular-directive-link angular-components

我尝试从Angular 1.4迁移到angular 1.5组件,然后再转换为typescript:

我想使用Angular 1.5组件,就像她是我的代码它不完整,但这个想法,背后

angular.
module('cool.core').
component('hasAnyRole', {
    template: 'Hello, {{$ctrl.user}}!',
    controller: function GreetUserController() {
        this.user = 'world';
    }
})

而不是Angular-directive-link:

angular.module('cool.core')
    .directive('hasAnyRole', ['Principal', function (Principal) {
        return {
            restrict: 'A',
            link: function (scope, element, attrs) {
                var roles = attrs.hasAnyRole.replace(/\s+/g, '').split(',');

                var setVisible = function () {
                    element.removeClass('hidden');
                };
                var setHidden = function () {
                    element.addClass('hidden');
                };

                var defineVisibility = function (reset) {
                    var result;
                    if (reset) {
                        setVisible();
                    }

                    result = Principal.isInAnyRole(roles);
                    if (result) {
                        setVisible();
                    } else {
                        setHidden();
                    }
                };

                if (roles.length > 0) {
                    defineVisibility(true);
                }
            }
        };
    }])

但是我找不到足够的例子 提前感谢您的建议。

0 个答案:

没有答案