首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何指定两个css类: from属性和条件类

如何指定两个css类: from属性和条件类
EN

Stack Overflow用户
提问于 2013-07-29 07:30:12
回答 2查看 8.7K关注 0票数 13

我知道在剔除中有能力从可观察的属性中指定类,如下所示:

代码语言:javascript
运行
复制
<div data-bind="css: Color " >

敲除还提供了指定条件类呈现的能力,如下所示:

代码语言:javascript
运行
复制
<div data-bind="css: { 'my-class' : SomeBooleanProperty  }" >

,但是如果我需要将css的那些特性绑定在一起,那么应该指定哪些标记?

我试过了,但没有运气:

代码语言:javascript
运行
复制
<div data-bind="css: { Color, 'my-class' : SomeBooleanProperty  }" >

我发现了一个错误:

错误:无法解析绑定。SyntaxError:意想不到的令牌;

我没有在谷歌或官方文档中找到任何例子。

更新

我找到了一个解决办法:在代码中构建样式字符串并将其放到属性中,如下所示:

代码语言:javascript
运行
复制
item.AdditionalCss(Color() + " " + (result.IsSortable() ? 'my-class' : null));

并在html中指定该类:

代码语言:javascript
运行
复制
data-bind="css: AdditionalCss "

但我有点困惑,我觉得这是一种肮脏的做法。我认为在标记中实现同样的结果会更好。如何使用标记来完成这一任务?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-29 07:49:39

使用类绑定

代码语言:javascript
运行
复制
<div data-bind="class: myClass" >

视图模型:

代码语言:javascript
运行
复制
var vm = {
     myClass : ko.observableArray(),
};
vm.myClass.push('class1');
vm.myClass.push('class2');

还可以将类绑定与计算结果一起使用。

但是如果你不想使用它,你可以这样做:

代码语言:javascript
运行
复制
<div data-bind="attr: { 'class' :( Color() +  (SomeBooleanProperty() ? ' my-class' :'')) }">
票数 9
EN

Stack Overflow用户

发布于 2014-06-21 16:07:35

您还可以使用经典的字符串格式:

代码语言:javascript
运行
复制
<div data-bind="css: Color() + (SomeBooleanProperty ? ' my-class' : '')" >

这一概念的一个实例是:

代码语言:javascript
运行
复制
var fullString = ('some' + ' ' + 'strings ') + 'and' + ' ' + 'other strings';
console.log(fullString);

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17918300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档