2013-10-17 3 views
0

안녕하세요. 이것이 Backbone.js의 첫 번째 문제입니다.구문 분석시 모델 수정

{ 
    {title: "key1", description: "value1"}, 
    {title: "key2", description: "value2"}, 
} 

그래서 그것이 테이블로 출력 데이터에보다 쉽게 ​​될 것입니다 :

{ 
    "key1": "value1", 
    "key2": "value2", 
} 

이 IMO I가 구문 분석 방법을 변경해야합니다 : 나는 몇 시간이 JSON에서 rander하는 방법을 알아 냈 시도해도 보냈다 핸들 :이 모델에서 내 구문 분석 방법이다

<tr> 
    <td>{{title}}</td> 
    <td>{{description}}</td> 
</tr> 

parse : function (response) { 
    _.each(response, function (value, key, list) { 
    this.set({ "title": key, "description": value }); 
    }, this); 
    return response; 
} 

답변

4
parse : function (response) { 
    var res = []; 

    _.each(response, function (value, key, list) { 
    res.push({ "title": key, "description": value }); 
    }); 

    return {"result": res}; 
} 

이 같은 모델 데이터에 액세스 할 수 있습니다.

model.get("result"); 

참고 :

이 잘못된 구문입니다.

{ 
    {title: "key1", description: "value1"}, 
    {title: "key2", description: "value2"}, 
} 

이 값을 배열에 넣어야합니다.

[ 
    {title: "key1", description: "value1"}, 
    {title: "key2", description: "value2"}, 
] 
1

당신이 응답에서 개체의 목록을 기대하는 경우, 당신은 모델 대신 컬렉션을 사용해야합니다.

수집 구문 분석 방법은

parse:function(resp){ 
    return _.map(_.keys(resp),function(key){ 
       return { 
        title:key, 
        description:resp[key] 
       } 
      }) 
} 
처럼 보일 수 있습니다
관련 문제