Javascript ngClass何时评估功能/如何在自定义指令中模拟此功能

Javascript ngClass何时评估功能/如何在自定义指令中模拟此功能,javascript,angularjs,angularjs-directive,ng-class,Javascript,Angularjs,Angularjs Directive,Ng Class,我希望有人能提供一些我现在非常缺乏的角度洞察力 ngClass允许您根据某些函数添加/删除类。例如,如果我写: <div ng-class="{'some-class' : myFunction()}"> </div> 显然这是行不通的。只有当指令被链接时,它才会运行。那么,如何查看myFunction()的更改呢?我将使用$watch(),它在每个$digest循环中计算初始参数,并在初始加载期间调用侦听器(第二个参数)一次,随后,每次初始参数的计算返回与前一个不同的

我希望有人能提供一些我现在非常缺乏的角度洞察力

ngClass允许您根据某些函数添加/删除类。例如,如果我写:

<div ng-class="{'some-class' : myFunction()}"> </div>
显然这是行不通的。只有当指令被链接时,它才会运行。那么,如何查看myFunction()的更改呢?

我将使用
$watch()
,它在每个$digest循环中计算初始参数,并在初始加载期间调用侦听器(第二个参数)一次,随后,每次初始参数的计算返回与前一个不同的值

基于您提供的psuedo代码(实际代码对于测试目的来说会更好:-),下面是一个您应该做的示例:

app.directive('myDirective', function () {
  return {
    restrict: 'A',
    link: function (scope, elem, attrs) {
      scope.$watch(function() {
         // .. this is your "myFunction()"
         return result;
      }, function(newResult) {
        if (newResult) {
          elem.addClass('some-class');
        } else {
          elem.removeClass('some-class');
        }
      });
    }
  }
}  

另外,请确保在“A”值上有结束引号。

为什么不在语句=
myFunction()中使用
ng呢?
我想我不太明白你的意思,你能详细说明一下吗?@Sanborn你能解决这个问题吗?
app.directive('myDirective', function () {
  return {
    restrict: 'A',
    link: function (scope, elem, attrs) {
      scope.$watch(function() {
         // .. this is your "myFunction()"
         return result;
      }, function(newResult) {
        if (newResult) {
          elem.addClass('some-class');
        } else {
          elem.removeClass('some-class');
        }
      });
    }
  }
}