【发布时间】:2014-07-24 01:47:39
【问题描述】:
我有一个具有约 30 个数据绑定属性的模型。我正在寻找 KO 中模型绑定的最佳实践模式。我知道我可以做到:
HTML
<div>First Name</div>
<input type="text" data-bind="value: FirstName, valueUpdate: 'afterkeydown'" />
<div>Last Name</div>
<input type="text" data-bind="value: LastName, valueUpdate: 'afterkeydown'" />
<div>Full Name</div>
<input type="text" data-bind="value: FullName" />
JavaScript
ko.applyBindings(new viewModel());
function viewModel(){
var self = this;
//var model = {};
var model = {
FirstName : "bubba",
LastName : "gump"
};
bindModel(self, model);
}
function bindModel(self, model) {
if(model.FirstName){
self.FirstName = ko.observable(model.FirstName);
}else{
self.FirstName = ko.observable('');
}
if(model.LastName) {
self.LastName = ko.observable(model.LastName);
}else{
self.LastName = ko.observable('');
}
self.FullName = ko.computed(function(){
return self.FirstName() + " " + self.LastName();}
, self);
}
是否有扩展、模式或最佳实践来处理这种冗长的空值检查或其他设置 gobbly gook?这是一个单页应用程序。如果我以一种方式查看页面,我将绑定到模型。如果我以另一种方式看待它,我根本不绑定任何东西(稍后在 AJAX 中进行绑定)。
【问题讨论】:
标签: javascript knockout.js single-page-application