ngClass 中的多个函数调用

multiple function calls inside ngClass

我想使用 ng-class 应用多个 classes

ng-class="func1();function2()"  

这会引发错误。

我必须只在一个函数中写完整吗?

我可以不调用上面的两个函数或任何适当的语法来做同样的事情吗?

没有。也没有理由这样做。你不应该在视图中编写这样的函数。 ng-click 指令用于在单击时调用作用域方法。它不只是 eval() 引号之间的代码。

要了解为什么您要做的就是编写自己的指令。

<input type="text" ng-model="model" />
<my-directive complete="total(value, model)"></my-driective>

app.directive('myDirective', function() {
  scope: {
    complete: '&'
  },
  link: function(scope) {
    // use your imagination
    scope.complete({value: 'hello'})
  }
})

注意函数调用如何实际解析提供给它的参数,并只提供它需要提供给作用域的值。

换句话说,做一个包装函数,你的代码会感谢你。

假设两个函数 returns 都有一个 class 的名字,你应该能够做到:

ng-class="func1() + ' ' + function2()"

不过确实有点味道。我更喜欢设置一个观察者来更新作用域上的 classes 属性(如果你使用 controllerAs,则在控制器上)。