【发布时间】:2015-02-21 01:54:17
【问题描述】:
我有一个 AngularJS 指令,它接受一个 ID 并在此 ID 上进行查找以获取给定弹性框元素的 col-width、hide-state 和 order。
如果元素的隐藏状态为真,我想做的是向元素添加 ng-if=false 属性。有什么办法,如何将指令中的 ng-if 属性添加到元素?
我当前的代码:
.directive("responsiveBehaviour", ['ResponsiveService', function(ResponsiveService){
var linkFunction = function(scope, element, attributes){
var id = attributes["responsiveBehaviour"];
var updateResponsiveProperties = function(){
element.attr("column-width", ResponsiveService.getWidth(id));
if(ResponsiveService.getOrder(id)){
element.attr("order", ResponsiveService.getOrder(id));
}
if(ResponsiveService.getHidden(id) == true){
element.attr("hidden", "");
} else {
element.removeAttr("hidden");
}
};
if(id) {
scope.$watch('device', function () {
updateResponsiveProperties();
});
}
};
如果我添加
element.attr("ng-if", false);
而不是
element.attr("hidden", "");
它只是将 ng-if 属性呈现给元素,但没有发生任何操作,因此尽管 ng-if 为 false,但该元素仍然呈现且可见。
您对如何实现我的目标有任何想法吗?
提前致谢。
问候
【问题讨论】:
-
我想那么你需要在添加 ng-if 属性后使用 $compile 服务来编译元素。
-
感谢您的反馈。我该怎么做?你能给我一个样品吗?
标签: javascript html angularjs angularjs-directive