使用knockoutjs格式化高度绑定与%而不是默认px

时间:2013-07-03 14:46:42

标签: knockout.js

我有一个绑定到我的html的视图模型:

function ViewModel(height, color, replies, hasMissingReplies) {
  this.height = height + "%"; 
}

现在我的布局正确显示,但我也使用ViewModel进行了一些计算,其中我总结了导致NaN(非数字)的高度,因为高度是一个字符串。

只有当我删除%-char然后我才有一个整数...但是它会从html解释为像素,所以我的布局是错误的。

我可以使用淘汰赛吗?

1 个答案:

答案 0 :(得分:0)

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

function ViewModel(height, color, replies, hasMissingReplies) {
    this.height = +height; 
    this.heightString = this.height + "%";
}

保留两份副本!

如果你想要一个更“淘汰”的解决方案,你可以使用computed observables:

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

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