在knockout.js中,我们可以对静态类使用css绑定
<div data-bind="css: {'translucent ': number() < 10}">static dynamic css classes</div>
Run Code Online (Sandbox Code Playgroud)
和动态
<div data-bind="css: color">static dynamic css classes</div>
Run Code Online (Sandbox Code Playgroud)
我已经尝试过http://jsfiddle.net/tT9PK/1/将它结合起来
css: {color, translucent: number() < 10}
Run Code Online (Sandbox Code Playgroud)
同时获取动态类color和静态translucent,但是我收到错误.有没有办法做到这一点?
我想知道如何为我的Knockout ViewModel中的项目使用$ data连接的css类名称.
当用户单击"赞美"按钮(我的ViewModel数组中的项目)时,我想将css类"feedbackItemIconPraise"应用于LI.如果用户点击"批评",我想申请"feedbackItemIconPraise"类.
我假设使用$ data连接data-bind属性中的css类是可行的方法,但可能是错误的.
我的ViewModel的相关部分:
var FeedbackViewModel = function () {
var self = this;
self.feedbackItemTypes = ['Praise', 'Criticism', 'Problem', 'Question'];
self.selectedFeedbackType = ko.observable('Praise');
self.updateSelected = function (param) {
self.selectedFeedbackType(param);
};
};
var feedbackViewModel = new FeedbackViewModel();
ko.applyBindings(feedbackViewModel, document.getElementById("feedbackModal"));
Run Code Online (Sandbox Code Playgroud)
我的视图显示的相关部分:
<div id="feedbackListContainer">
<ul class="thumbnails" id="feedbackList" data-bind="foreach: feedbackItemTypes">
<li class ="feedbackItem" data-bind="click: $parent.updateSelected, text:$data, attr:{id:'feedbackItem'+$data, title:$data}, css: {'feedbackItem-Highlighted':$data==$parent.selectedFeedbackType(), 'feedbackItemIcon'+$data: true}">
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
我认为我错了是应用CSS类"'feedbackItemIcon'+ $ data".我想我误解了如何应用css类,如果在Knockout中这是可能的,或者与Knockout的工作方式不一致.当我尝试这样做时,我的所有文本都会消失,所以我认为我完全搞砸了语法.
会欣赏一些见解.