指令上的多个ng-class属性

时间:2014-08-05 17:51:23

标签: angularjs directive ng-class

Relevant plnkr.

script.js我有一个指令super。该指令有一个模板

template: '<div class="super" ng-class="{dirClass: foo}"></div>'

具有ng-class属性。

请注意,该指令还有replace: true

<super>中调用此指令的index.html元素也具有ng-class属性。显然Angular并不喜欢这样..它会尝试解析

[{viewClass: !bar} {dirClass: foo}]

显然失败了。我预计它会自动合并.. nope。

我认为我想要达到的目标有点明确,但我该怎样做呢?

1 个答案:

答案 0 :(得分:1)

你可以这样做:http://plnkr.co/edit/xEc0pRHVbVLgR0NhWPEI?p=preview

JS:

angular.module('app', [])
  .controller('myCtrl', function ($scope, $interval) {
    $scope.bar = false;

    $interval(function () {
      $scope.bar = !$scope.bar;
    }, 500);
  })

  .directive('super', function () {
    return {
      restrict: 'EA',
      template: '<div class="super" ng-class="{dirClass: foo , viewClass: !foo}" ></div>',
      scope: {
        foo: '='
      },
      replace: true
    };
  });

HTML:

 <super foo="bar"></super>