在BackboneJS中,关于设置模型属性的说明
In BackboneJS, clarification on setting the attributes of models
使用主干主干网时的两种常见场景:
属性列为默认值,然后设置
modelExample_A: Backbone.Model.extend({
defaults: {
whatever: 'foo'
something: 'blah'
}
});
viewExample_A: Backbone.View.extend({
//our view definition
});
var Example_A = new viewExample_A({
model: new modelExample_A()
})
Example_A.set({
'whatever': 'bar',
'something': 'weeeeeee',
});
属性未列为默认值,然后设置
modelExample_A: Backbone.Model.extend({
});
viewExample_A: Backbone.View.extend({
//our view definition
});
var Example_A = new viewExample_A({
model: new modelExample_A()
})
Example_A.set({
'whatever': 'bar',
'something': 'weeeeeee',
});
属性未列为默认值,在创建时设置
modelExample_A: Backbone.Model.extend({
});
viewExample_A: Backbone.View.extend({
//our view definition
});
var Example_A = new viewExample_A({
model: new modelExample_A({
'whatever': 'bar',
'something': 'weeeeeee',
})
})
但是,如果我想设置模型的属性,该怎么办?我知道这通常是不鼓励的,但有时在我的代码中,我喜欢制作一个不属于当前模型的父模型。这几乎肯定永远不会改变,所以没有理由为了事件侦听/onChange的目的而放入属性。此外,这是一个没有默认值的东西(它只能在上下文中获得值),所以可以将其设置为模型的属性吗?或者这会导致问题吗?
设置属性而不是属性
modelExample_A: Backbone.Model.extend({
defaults: {
whatever: 'foo'
something: 'blah'
}
});
viewExample_A: Backbone.View.extend({
//our view definition
});
var Example_A = new viewExample_A({
model: new modelExample_A({
'whatever': 'bar',
'something': 'weeeeeee',
})
})
Example_A.parentModel = parentModelExample;
适度使用并加以考虑,在模型实例上设置非属性属性很好。只是要小心,不要让这些数据很容易进入不一致的状态,如果你经常这样做,那就是代码的味道。在这种情况下,您可能需要考虑将某些状态建模为具有属性的实际模型,但不要持久化它们(永远不要调用.save
)。
相关文章:
- 显示模块模式在Knockout中设置模型的新实例
- 将输入值设置为ng模型属性[Angular]时出现问题
- 如何在ExtJs4应用程序上为视图、存储和模型设置自定义文件夹名称
- 使用“angular.copy”设置模型-what'这有好处
- 主干集合提取数据,但不设置模型
- 如何在 NodeJS 中使用续集设置模型验证
- 如何在角度中动态设置模型名称
- 如果我在 model.save 成功时设置模型会怎样?
- 在Node.js中设置模型的正确方法
- 如何在使用Ember和Ember数据设置模型属性之前编辑表单数据
- 在BackboneJS中,关于设置模型属性的说明
- 设置模型属性的内部字段
- 如何设置模型值与视图元素文本在javascript (MVC 4)
- 如何在Ember.js的控制器单元测试中设置模型数据
- 通过API数据设置模型和动态路由
- 如何在AngularJS中使用select对象数组来设置模型的值
- 使用下划线外部模板在背部骨骼中设置模型内容
- 如何设置模型's加载顺序以避免关系错误
- 在promise.then()中设置模型时,视图中的Nativescript绑定属性不会更新
- Angular数据绑定-手动设置模型的值