不能交换模型集合属性
Can't swap the model collection attributes?
我是backboneJS的新手。我从www.todomvc.com下载了代码。我有一个按钮,触发下面的moveUp功能,将"待办事项"模型移动一步以上,即优先考虑,它安排属性"顺序"的集合。我想要的是,我可以交换两个模型的"顺序"属性。这是我认为会工作....
moveUp: function(){
var index = this.model.collection.indexOf(this.model);
var nextModel = this.model.collection.at(index+1);
var order1 = this.model.attributes.order;
var order2 = nextModel.attributes.order;
this.model.set('order', order2);
this.model.collection.models[index + 1].set('order', order1);
}
但这不起作用,'order'属性在代码前后保持不变。我尝试过的事情是:
model.set({'order',order1});
model.set('order',order1);
var order = _.clone(model.get('order'));
model.set(order, order1);
var map = {};
map['order'] = value;
this.model.set(map);
代码在这里共享。如果有人能指出我错在哪里。此外,我在某处读到,它不会引发"改变"。
我发现你设置新订单值的方式有问题。
主干模型集需要属性的散列或属性名和值的两个参数。来自文档:
在模型上设置属性的散列(一个或多个)。如果有属性改变模型的状态,一个"改变"事件就会发生在模型上触发。对于特定属性的更改事件也是如此触发,你也可以绑定它们,例如:
change:title
和change:content
。您也可以传递单个密钥和价值观。
因此,您可以使用以下两种方式中的任何一种调用set
:
this.model.set({'order': order2}); //note the curly brackets, so you pass a hash of attributes
this.model.set('order', order2); //note prop name and value are 2 separated arguments
相关文章:
- 将css属性添加到对象的集合中
- 如何更改与Backbone集合中的模型相关联的几个元素的css属性
- 从骨干集合筛选模型,然后为这些模型设置属性
- 在 Forerunner 数据库集合中创建主键时,key 属性是否可以位于集合对象的对象内部
- 如何在集合中指定模型的一个属性
- 主干:如何保存模型集合中模型的属性更改
- BackboneJS重新排列集合中模型的最佳方式,同时为每个模型维护0索引的有序属性
- 集合作为 EmberJS 中的属性?(一对多关系)
- 我怎样才能得到“;类型“;集合中每个属性的
- 根据三个模型属性对主干集合进行排序
- 根据模型属性对主干集合进行排序
- Backbone.js在permalink集合中所有模型的唯一属性名称
- 监视包含点的属性上的集合
- 数组中嵌入文档的集合更新属性
- 在任何时候,将 Active 属性设置为主干集合中的 1 个模型
- 主干集合 其中函数在作为对象的属性上
- 更改一个对象的可观察属性会更改集合中所有对象的属性
- 骨干.js:有没有办法在创建集合时为集合中的所有模型设置属性
- MSCRM 识别表单属性集合上的快速视图属性
- 使用微风js过滤实体的子属性集合