knockout.js – 敲除css绑定渲染=> class =“0 1 2 3 4 5 6 with KO 2.0

我用这段代码得到一个奇怪的样式文本:
self.styleClass = ko.computed(function () {
            return self.isFollowing() ? "button" : "secondary button";
        });

      <button data-bind="text: followButtonText,click: toggleIsFollowing,css: styleClass"></button>

它呈现:

<button data-bind="text: followButtonText,css: styleClass" class=" 0 1 2 3 4 5 6 7 8 9 10 11 12">Unfollow</button>

model.styleClass()在控制台中渲染得很好

解决方法

css绑定的语义已从KO 2.1.0更改为KO 2.2.0

Knockout 2.2.0 released开始:

We’ve also made some features work more like you might always have
thought they should work. For example,the css binding can Now attach
programmatically-generated CSS class names to elements (prevIoUsly,it
was limited to toggling predefined CSS class names).

所以升级到KO 2.2.1,它会正常工作.

如果无法升级,可以使用attr绑定作为解决方法

<button data-bind="text: followButtonText,attr:{ class: styleClass}" />

演示JSFiddle using KO 2.0.0 and attr binding

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...