如何获取模型中多行表达式属性的值
How to get value of multi line expression attribute in model
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 控制台中得到这个:
该值的正确方法是什么?
您可以使用以下代码设置值:-
var invoiceItemModel = new InvoiceItemModel();
invoiceItemModel.set({description:'New Value'});
对于 get 你可以使用:-
alert(invoiceItemModel.toJSON().description);
你可以使用这个获取日期值:-
console.log(invoiceItemModel.defaults.date());
如果您想要设置发票创建日期,您需要计算匿名函数以获得 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。
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 控制台中得到这个:
该值的正确方法是什么?
您可以使用以下代码设置值:-
var invoiceItemModel = new InvoiceItemModel();
invoiceItemModel.set({description:'New Value'});
对于 get 你可以使用:-
alert(invoiceItemModel.toJSON().description);
你可以使用这个获取日期值:-
console.log(invoiceItemModel.defaults.date());
如果您想要设置发票创建日期,您需要计算匿名函数以获得 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。