Knockout.js 使用%格式化高度绑定,而不是使用knockoutjs格式化默认px
我已将viewmodel绑定到我的html:Knockout.js 使用%格式化高度绑定,而不是使用knockoutjs格式化默认px,knockout.js,Knockout.js,我已将viewmodel绑定到我的html: function ViewModel(height, color, replies, hasMissingReplies) { this.height = height + "%"; } 现在,我的布局显示正确,但我也使用ViewModel进行了一些计算,其中我将高度相加,结果为NaN(不是数字),因为高度是一个字符串 只有当我删除%-字符时,我才有一个整数。。。但是它从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
,除非您确实需要这些功能。看见