我正在使用knockout js从异步服务加载作业列表。每个作业都有一个非常长的字段列表,我想知道将数据存储为原始json是否被认为是不好的做法?
function Job(data) {
var self = this;
this.data = data; // is this bad practice?
this.companyName = data.CompanyName; // should I instead list out all the fields?
this.jobTitle = data.JobTitle;
// .. 50 more fields
}
function JobsViewModel() {
function getJobs() {
$.getJSON(myUrl, { myParams }, function(data) {
var mappedJobs = $.map(JSON.parse(data.value), function(item) { return new Job(item) });
self.jobs(mappedJobs);
});
}
// initial data load
getJobs();
}
... // then in my data-bindings
<label data-binding="text: data.CompanyName"></label>
versus
<label data-binding="text: companyName"></label>后者更干净,更清晰,但由于我有很多字段,所以我想得到一些意见。
谢谢。
发布于 2012-05-17 09:11:05
你应该看看knockout映射插件。它将从你的数据中生成属性,所以你不必手写所有的属性。
http://knockoutjs.com/documentation/plugins-mapping.html
当前使用的方法不会在模型中的属性更改时更新标签,因为您的属性不可观察。使用映射插件也可以解决这个问题。
https://stackoverflow.com/questions/10627633
复制相似问题