backbone 运算符在使用 model.set() 时出错

backbone operator in error when using model.set()

一切都有意义我不知道我的 set() 辅助方法有什么问题,当我 运行 它时,我在控制台中看到了错误。

var Person = Backbone.Model.extend({
  defaults: {
    name: '',
    age: 30,
    occupation: 'fireman'
  },
  validate: function(attrs) {
    console.log(attrs);
  },
  work: function() {
    return this.get('name') + ' is working';
  }
})

var p = new Person({name:'John'});
//p.set('occupation','software developer'); why this has error?
console.log(p.toJSON())

http://jsfiddle.net/8hsnbxe3/

p.set({"occupation":"software developer"});

您知道吗,您在示例中链接了 Backbone.js 0.3.3? (今天是1.3.3版本)

那时候,无法使用 .set(key, value) 模式,只能通过将对象作为第一个参数来设置值。

model.set(obj, options)

obj 具有更新属性的对象或 Backbone 模型对象。

这里使用:

p.set({"occupation":"software developer"});