Javascript 主干模型:基于条件的默认值

Javascript 主干模型:基于条件的默认值,javascript,backbone.js,backbone-model,Javascript,Backbone.js,Backbone Model,我是BackboneJS的新手,希望在基于条件默认属性方面获得一些帮助 如何基于仅当骨干模型中的model.attribute='xyz'时的条件来测试默认名称 defaults: function() { return { name: 'TEST' } } 谢谢在扩展主干模型时设置了默认值,因此您实际上没有访问任何实例属性的权限 如果要更改的默认值取决于在Instantiation上设置的实例模式属性(即new MyModel({foo:“bar”})),那么在扩展模型时最好设

我是BackboneJS的新手,希望在基于条件默认属性方面获得一些帮助 如何基于仅当骨干模型中的model.attribute='xyz'时的条件来测试默认名称

defaults: function() {
  return {
   name: 'TEST'
  }
}

谢谢

在扩展主干模型时设置了
默认值
,因此您实际上没有访问任何实例属性的权限

如果要更改的默认值取决于在Instantiation上设置的实例模式属性(即
new MyModel({foo:“bar”})
),那么在扩展模型时最好设置
initialize()
回调

var MyModel = Backbone.Model.extend({
  initialize: function(options) {
    // I have access to this.attributes here
  }
});

当您扩展主干模型时,可以设置
默认值
,这样您就无法真正访问那里的任何实例属性

如果要更改的默认值取决于在Instantiation上设置的实例模式属性(即
new MyModel({foo:“bar”})
),那么在扩展模型时最好设置
initialize()
回调

var MyModel = Backbone.Model.extend({
  initialize: function(options) {
    // I have access to this.attributes here
  }
});

请注意,
默认值
是问题中的一个函数。所以你的第一句话是错的
this.attributes
defaults
函数中访问时为空,因为属性正在设置过程中,因此调用
defaults
函数。这很有意义,谢谢大家的帮助。@emilebergron我想我所说的没有错。在通过下划线的
result()
“扩展主干模型时”计算
默认值时,实例属性还没有填充,就像代码仅在扩展模型类时运行一样编写,这是错误的,因为每次实例化模型时都会调用该函数。您确实有权访问实例
attributes
hash,但此时它是空的。您无法访问的是传递的属性(
newmymodel({foo:bar})
),因为
defaults
函数没有收到任何参数。不过我对您进行了投票,这只是吹毛求疵;)请注意,
默认值
是问题中的一个函数。所以你的第一句话是错的
this.attributes
defaults
函数中访问时为空,因为属性正在设置过程中,因此调用
defaults
函数。这很有意义,谢谢大家的帮助。@emilebergron我想我所说的没有错。在通过下划线的
result()
“扩展主干模型时”计算
默认值时,实例属性还没有填充,就像代码仅在扩展模型类时运行一样编写,这是错误的,因为每次实例化模型时都会调用该函数。您确实有权访问实例
attributes
hash,但此时它是空的。您无法访问的是传递的属性(
newmymodel({foo:bar})
),因为
defaults
函数没有收到任何参数。不过我对您进行了投票,这只是吹毛求疵;)