Knockout.js 使用%格式化高度绑定,而不是使用knockoutjs格式化默认px

Knockout.js 使用%格式化高度绑定,而不是使用knockoutjs格式化默认px,knockout.js,Knockout.js,我已将viewmodel绑定到我的html: function ViewModel(height, color, replies, hasMissingReplies) { this.height = height + "%"; } 现在,我的布局显示正确,但我也使用ViewModel进行了一些计算,其中我将高度相加,结果为NaN(不是数字),因为高度是一个字符串 只有当我删除%-字符时,我才有一个整数。。。但是它从html被解释为像素,所以我的布局是错误的 我可以使用击倒法吗?有很多方

我已将viewmodel绑定到我的html:

function ViewModel(height, color, replies, hasMissingReplies) {
  this.height = height + "%"; 
}
现在,我的布局显示正确,但我也使用ViewModel进行了一些计算,其中我将高度相加,结果为NaN(不是数字),因为高度是一个字符串

只有当我删除%-字符时,我才有一个整数。。。但是它从html被解释为像素,所以我的布局是错误的


我可以使用击倒法吗?

有很多方法可以解决这个问题,但最简单的方法可能是:

function ViewModel(height, color, replies, hasMissingReplies) {
    this.height = +height; 
    this.heightString = this.height + "%";
}
留两份就行了

如果您想要一个更“令人震惊”的解决方案,您可以使用
computed
observatives:

function ViewModel(height, color, replies, hasMissingReplies) {
    var self = this;
    this.height = ko.observable(+height); 
    this.heightString = ko.computed(function() {
        return self.height() + "%";
    });
}    

但是,除非你需要你的
height
属性是一个可观察的属性,否则我真的看不出这一点。

好吧,那就行了。但是使用kockoutjs的功能有什么方法吗?@HelloWorld:请看我的更新,但是我不会麻烦使用
observable
computed
,除非您确实需要这些功能。看见