Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript id为的主干集合中的获取问题_Javascript_Jquery_Backbone.js_Underscore.js_Handlebars.js - Fatal编程技术网

Javascript id为的主干集合中的获取问题

Javascript id为的主干集合中的获取问题,javascript,jquery,backbone.js,underscore.js,handlebars.js,Javascript,Jquery,Backbone.js,Underscore.js,Handlebars.js,以下是我的JSON: [ { "id" : "1", "type" : "report" }, { "id" : "2", "type" : "report" }, { "id" : "1", "type" : "email" }, ] 考虑一下,json是从主干收集->服务调用返回的。 现在,当我使用json响应使用主干视图和Handlebar模板系统呈现html表时。 显示2行,而应显示3行 注: 集合解析响应返回正确的json

以下是我的JSON:

[ 
{  
    "id" : "1",
    "type" : "report"
},
{  
    "id" : "2",
    "type" : "report"
},
{  
    "id" : "1",
    "type" : "email"
},
]
考虑一下,json是从主干收集->服务调用返回的。 现在,当我使用json响应使用主干视图和Handlebar模板系统呈现html表时。 显示2行,而应显示3行

注: 集合解析响应返回正确的json(即3行)。 当我使用集合解析和唯一随机生成的数字覆盖
id
时,所有3行都会显示出来。 这不好,因为我不想更改
id

我希望该行显示如下:

1 reports
2 reports
1 email

从文件中

请注意,将相同的模型(具有相同id的模型)添加到 多次收集是不可行的

虽然我看不出两个不同对象应该具有相同id的原因,但您可能有一个有效的原因。建议为json响应中的每个对象添加另一个属性,
\u dummyId
,并从服务器端将其设置为自动递增值。在客户端,在模型定义代码中,将
idAttribute
设置为
\u dummyId

JSON响应

[ 
{  
    "id" : "1",
    "_dummyId": "1",
    "type" : "report"
},
{  
    "id" : "2",
    "_dummyId": "2",
    "type" : "report"
},
{  
    "id" : "1",
    "_dummyId": "3",
    "type" : "email"
},
]
您的模型定义


也就是说,我确实希望主干中有一个优雅的设置,使主干集合成为列表而不是集合

从的文档中

请注意,将相同的模型(具有相同id的模型)添加到 多次收集是不可行的

虽然我看不出两个不同对象应该具有相同id的原因,但您可能有一个有效的原因。建议为json响应中的每个对象添加另一个属性,
\u dummyId
,并从服务器端将其设置为自动递增值。在客户端,在模型定义代码中,将
idAttribute
设置为
\u dummyId

JSON响应

[ 
{  
    "id" : "1",
    "_dummyId": "1",
    "type" : "report"
},
{  
    "id" : "2",
    "_dummyId": "2",
    "type" : "report"
},
{  
    "id" : "1",
    "_dummyId": "3",
    "type" : "email"
},
]
您的模型定义


也就是说,我确实希望主干中有一个优雅的设置,使主干集合成为列表而不是集合

如果要解决此问题,必须为添加到集合中的每个模型设置新的唯一id。 尝试以下方法:

initialize: function() {
      this.set("id", this.generateID());
},
generateID = function () {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
        return v.toString(16);
    });
}
如果需要原始id,则需要在创建新id之前和之后保存它,然后在另一个模型属性中设置原始id。
当我将@amith george solution设置为另一个
dummyId

时,请忽略我。如果要解决此问题,必须为添加到集合中的每个模型设置新的唯一id。 尝试以下方法:

initialize: function() {
      this.set("id", this.generateID());
},
generateID = function () {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
        return v.toString(16);
    });
}
如果需要原始id,则需要在创建新id之前和之后保存它,然后在另一个模型属性中设置原始id。 当我将@amith george solution设置为另一个
dummyId

尝试更改idAttribute尝试更改idAttribute时,主干忽略我