Backbone.Js Cookbook中有插图,如何使用多行表达式设置默认值。
var InvoiceItemModel = Backbone.Model.extend({
defaults: {
description: '',
price: 0,
quantity: 1,
date: function() {
var date = new Date();
return date.toISOString();
}
}
});

但是,当我尝试将日期值设为:
时
var invoiceItemModel = new InvoiceItemModel();
console.log(invoiceItemModel.get('date'));

我在Google Chrome控制台中收到此信息:
这种价值的正确方法是什么?
答案 0 :(得分:1)
您可以使用以下代码设置值: -
var invoiceItemModel = new InvoiceItemModel();
invoiceItemModel.set({description:'New Value'});
为了让你可以使用: -
alert(invoiceItemModel.toJSON().description);
您可以使用以下方法获取日期值: -
console.log(invoiceItemModel.defaults.date());
答案 1 :(得分:1)
如果你想要的是在创建发票上设置日期,你需要评估匿名函数以获得date
值:
var InvoiceItemModel = Backbone.Model.extend({
defaults: {
description: '',
price: 0,
quantity: 1,
date: (function() {
var date = new Date();
return date.toISOString();
})()
}
});
请参阅demo。
否则date
属性中的内容是您必须调用的函数:
var invoiceItemModel = new InvoiceItemModel();
console.log(invoiceItemModel.get('date')());
请参阅demo。