将数组嵌套到主干模型中
Nested array into backbone model
我有以下主干模型:
var Info = Backbone.Model.extend({
urlRoot: 'http://localhost:8080/info',
defaults : {
nombre: '',
tipo : '',
telf : 0,
icono : '',
direccion:[{
direccion:'',
latitud:'',
longitud:''
}]
},
idAttribute:"_id"
});
我想更改"direccion"中数组的"direcion"矩阵的值。
我使用了以下代码,但不起作用:
//clone the array
var direccionArray = _.clone(this.collection.get(idInfo).get('direccion'));
direccionArray.direccion = this.$('#dir-info-edit').val();
在这里,我获得了值已更改的数组,并且运行良好:
console.log(direccionArray);
现在,我将数组设置为我的主干模型,如下所示,但不起作用(模型不会改变),我得到了相同的模型(改变其他矩阵,如"nombre"或"tipo",效果很好,但不适用于数组):
this.collection.get(idInfo).set('direccion',direccionArray);
console.log(this.collection.get(idInfo));
有人能帮帮我吗?
如前所述,模型的direccion
属性是一个数组,包含索引为0的对象。
当你尝试做:
//clone the array
var direccionArray = _.clone(this.collection.get(idInfo).get('direccion'));
direccionArray.direccion = this.$('#dir-info-edit').val();
这不会更新要更新的direccionArray[0]
,只会向数组对象添加新属性。
你想做的是:
direccionArray[0].direccion = this.$('#dir-info-edit').val();
试试console.dir(direccionArray)
这个老数组,你会发现不同的地方。
更新:
请参阅这篇文章,并附上对该问题的解释。出现这种情况的主要原因可能是,您正在字符串中使用jquery的val()
方法获取非输入元素的值。
相关文章:
- 使用knockout.js将数组绑定到视图模型
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- 如何在ember数据模型中表示数组
- 在Backbone中对模型(数组)进行排序
- 主干输出用于集合模型的空数组
- 字符串映射的Extjs模型数组
- Angular2没有在模型数组中迭代
- Ember 数据模型数组并不总是有数据
- AngularJS 无法自定义验证模型数组值
- 如何在不破坏角度模型(数组)的情况下对其进行过滤
- 主干.js - 模型数组上的更改事件不会在元素更改时触发
- Backbone-JSON的模型数组
- 主干模型数组属性更改和更改事件侦听器不总是启动
- 如何创建对象的Mongoose模型数组
- 无法清除主干模型数组属性
- 如何将控制器's content属性设置为模型数组,而不需要相应的路由
- VueJS复选框模型数组的整数
- 主干:如何在添加模型数组时仅触发一次添加事件
- 筛选骨干集合将返回一个模型数组
- 如何将模型数组传递到jquery中