我知道在剔除中有能力从可观察的属性中指定类,如下所示:
<div data-bind="css: Color " >
敲除还提供了指定条件类呈现的能力,如下所示:
<div data-bind="css: { 'my-class' : SomeBooleanProperty }" >
,但是如果我需要将css的那些特性绑定在一起,那么应该指定哪些标记?
我试过了,但没有运气:
<div data-bind="css: { Color, 'my-class' : SomeBooleanProperty }" >
我发现了一个错误:
错误:无法解析绑定。SyntaxError:意想不到的令牌;
我没有在谷歌或官方文档中找到任何例子。
更新
我找到了一个解决办法:在代码中构建样式字符串并将其放到属性中,如下所示:
item.AdditionalCss(Color() + " " + (result.IsSortable() ? 'my-class' : null));
并在html中指定该类:
data-bind="css: AdditionalCss "
但我有点困惑,我觉得这是一种肮脏的做法。我认为在标记中实现同样的结果会更好。如何使用标记来完成这一任务?
发布于 2013-07-28 23:49:39
使用类绑定
<div data-bind="class: myClass" >
视图模型:
var vm = {
myClass : ko.observableArray(),
};
vm.myClass.push('class1');
vm.myClass.push('class2');
还可以将类绑定与计算结果一起使用。
但是如果你不想使用它,你可以这样做:
<div data-bind="attr: { 'class' :( Color() + (SomeBooleanProperty() ? ' my-class' :'')) }">
发布于 2014-06-21 08:07:35
您还可以使用经典的字符串格式:
<div data-bind="css: Color() + (SomeBooleanProperty ? ' my-class' : '')" >
这一概念的一个实例是:
var fullString = ('some' + ' ' + 'strings ') + 'and' + ' ' + 'other strings';
console.log(fullString);
https://stackoverflow.com/questions/17918300
复制相似问题