如何在模型中获取多线表达式属性的值

时间:2015-05-30 08:58:38

标签: javascript jquery backbone.js

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控制台中收到此信息:

Google chrome console output screen

这种价值的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码设置值: -

var invoiceItemModel = new InvoiceItemModel();
invoiceItemModel.set({description:'New Value'});

为了让你可以使用: -

 alert(invoiceItemModel.toJSON().description);

您可以使用以下方法获取日期值: -

console.log(invoiceItemModel.defaults.date());

Demo

答案 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