在指令中动态添加ng-if属性

时间:2014-08-25 13:38:44

标签: javascript angularjs angularjs-directive

我使用以下指令将属性添加到HTML元素:

    module1.directive('rhVisibleFor', function ($rootScope) {
        return{
            priority: 10000,
            restrict: 'A',
            compile: function (el, attr) {
                el.removeAttr('rh-visible-for'); 
                el.attr('ng-if', '$layoutPreferences.visibilities[\''+attr.rhVisibleFor+'\']');
//                el.attr('ng-if', 'false');
                var fn = $compile(el);
                return function(scope){
                    fn(scope);
                };
            }

        }
    })

编译成功执行,但生成的代码不响应更改。即使我明确地为ng-if属性设置了false,也显示了它。

1 个答案:

答案 0 :(得分:0)

我的问题已解决,问题的原因是指令依赖项中缺少$scope

module1.directive('rhVisibleFor', function ($rootScope,$compile) ...