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,则在控制器上)。
我想使用 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,则在控制器上)。