从指令内部向元素添加ng-class
表达式的正确方法是什么?
例如:
<div my-directive></div>
在myDirective
内,我想让元素看起来像这样:
<div my-directive ng-class="{visible:isVisible}"></div>
是否应该在编译函数的第一个参数tElement
?
如果是这样,怎么样?只需使用setAttribute()
?
感谢。
答案 0 :(得分:2)
我会使用模板并替换原始div
来实现此目的:
指令:
.directive('myDirective', function(){
return {
restrict: 'A',
template: '<div ng-class="{visible:isVisible}"></div>',
replace: true,
link: function($scope, elem, attrs){
$scope.isVisble = true;
}
}
})
你的html:
<div my-directive></div>
如何设置isVisible
只是一个例子。您可以在指令控制器中,在父作用域中,在隔离的作用域中执行此操作...