如何将ng-class添加到指令的模板中?

时间:2014-02-11 19:44:13

标签: angularjs

从指令内部向元素添加ng-class表达式的正确方法是什么?

例如:

<div my-directive></div>

myDirective内,我想让元素看起来像这样:

<div my-directive ng-class="{visible:isVisible}"></div>

是否应该在编译函数的第一个参数tElement? 如果是这样,怎么样?只需使用setAttribute()

感谢。

1 个答案:

答案 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只是一个例子。您可以在指令控制器中,在父作用域中,在隔离的作用域中执行此操作...