主干:从JSON创建集合
Backbone: Create collection from JSON
我正试图将JSON(从php的JSON_encode)加载到Backbone JS集合中。我已经将问题简化为:
var myJSON = '[{ "id":"1","name":"some name","description":"hmmm"}]';
var myCollection = new MyCollection(myJSON, { view: this });
和:
MyObject = Backbone.Model.extend({
id: null,
name: null,
description: null
});
MyCollection = Backbone.Collection.extend({
model: MyObject,
initialize: function (models,options) { }
});
错误:
未捕获的类型错误:无法使用"in"运算符在中搜索"id"
类似问题:主干:从服务器获取集合
我的JSON格式确实正确,我是不是遗漏了一些明显的东西?我尝试过简单地使用id:"1",而不是"id",结果相同。
您的JSON仍然是字符串格式。在分配之前将其传递给JSON.parse:
var myJSON = JSON.parse('[{"id":1,"name":"some name","description":"hmmm"}]');
您忘记了模型中的defaults
哈希。
MyObject = Backbone.Model.extend({
defaults: {
id: null,
name: null,
description: null
}
});
请参阅文档
所以我可能完全没有抓住要点,但问题似乎是数组周围的"单引号"。也就是说,这个:
var myJSON = '[{ "id":"1","name":"some name","description":"hmmm"}]';
应该是:
var myJSON = [{ "id":"1","name":"some name","description":"hmmm"}];
Php,afik,不添加单引号,所以它应该像更改一行写着:一样简单
$my_js = "var myJSON = '" . json_encode($my_array_to_send)) . "';";
至:
$my_js = "var myJSON = " . json_encode($my_array_to_send)) . "; ";
相关文章:
- Lodash从集合创建集合
- 使用Undercore创建对象集合
- 使用System从C#集合创建JSON数组.网状物剧本序列化
- 骨干和轨道集合.创建等待
- 在 Forerunner 数据库集合中创建主键时,key 属性是否可以位于集合对象的对象内部
- Meteor:如何使用空格键创建包含两个集合数据的树列表
- 从筛选的模型创建集合
- MongoDB 的集合构造函数是否仅在集合不存在时才创建集合
- 如何动态创建集合名称(取决于用户信息)
- 骨干.js:有没有办法在创建集合时为集合中的所有模型设置属性
- 角度 ng 重复 - 动态创建集合
- 需要将 JQuery 与 Shopify 一起使用的示例来创建集合并使用返回的 ID 添加产品
- 在 JavaScript 中创建集合(相同类型的唯一元素)时,习惯上用作键的值
- 如何根据url在Meteor中创建集合的新副本
- AngularJS使用ng选项来创建集合
- 主干:从JSON创建集合
- 主干:从JSON错误中创建集合
- 主干创建集合,然后视图-异步
- BackboneJs:从嵌套对象中创建集合中的多个模型
- Lodash从重复的对象键创建集合