2012-08-14 5 views
0

백본 콜렉션을 사용하여 파일에서 JSON을로드 중입니다. 이제 파일의 동일한 내용을 가져 와서 배열에 넣고 URL 함수를 호출하면 아무 것도 작동하지 않는 것 같습니다. 도와주세요 ..백본 콜렉션 URL 함수

var cool = {}; 
cool.Item = Backbone.Model.extend({}); 
cool.Items = Backbone.Collection.extend({ 
     model: cool.Item, 
       url: "data.json" 

이 코드는이에

+0

'return'은 예약어가 아닌가요? – stusmith

+0

this this.return (cool_cont()가 this.cool_cont()가 아닐까요?) * JSON 객체 *가 정확히 무엇입니까? 전체 코드를 게시하십시오 "작동하지 않습니다"라고하면 – schacki

답변

2

당신의 논리가 어떤 잘못된 생각을 가지고 ..

var cool = {}; 
cool.Item = Backbone.Model.extend({}); 
cool.Items = Backbone.Collection.extend({ 
     model: cool.Item, 
       url: this.return(cool_cont()); 

function cool_cont() 
{ 
* JSON object* 
} 

이 코드 나던 작업 작동합니다. 여기에서 작동하는 예제는 url-attribute를 data.json으로 정의한다는 것입니다. 불러올 때 백본이 해당 URL에 대해 ajax 요청을하고 (귀하의 파일에 걸려 넘어 질 때) 콘텐츠를 반환합니다 (사용자의 json 데이터).

두 번째 시도는 모든 것이 잘못되는 부분입니다. 첫째 :이 수행 (또는 가능성하지 않습니다) 그리고 난 알고 싶지 않아 모르는

url: this.return(cool_cont()); 

. URL을-속성/함수의 기본 전제는 그것이

그래서 당신이 여기에서하는 것은 당신이 원하는 데이터를 전달한다는 것이다 Backbone.js docs (실화)에서

Set the url property (or function) on a collection to reference its location on the server.

-Quote에 의미이다 귀하의 컬렉션을 서버의 위치에 대한 참조로 채 웁니다. 솔직하게 말해서 당신이 그렇게하지 않았다고 생각합니다. 이것은 틀린 것입니다.

그래서 URL == path_to_your_data_be_it_url_or_file 문자열 (일명 정적 경로) 또는 기능을 할 수있는 하나

URL (예를 들어 그것의 일부로 모델의 일부 특성을 사용하여 경로를 생성). 당신이 당신의 컬렉션에 일부 가짜 데이터를 삽입 할 외부 파일을하지 않으려면

, 그것은 다음과 같이 수행이 도움이

var json_data = [ 
    {"foo": "bar"}, // model 1 
    {"foo": "bar2"}, // model 2 
    ... 
    {"foo": "barN"}, // model N 
]; 

var options = {...}; // optional 

var myCollection = new MyCollection(json_data, options); 

희망을!

+0

고맙습니다. jakee , 이것은 정말로 도움이되었습니다 – Jayanth

+0

안녕하세요, 제이크 - 저는 같은 문제에 직면하고 있습니다. 당신이 도울 수 있기를 바랬습니다. 테스트를하고 내 페이지에 "가짜"데이터를 삽입해야합니다. 개체 "json_data"하지만 여전히 다음과 같은 오류가 나타납니다 : ** "url"속성 또는 함수를 지정해야합니다 ** URL 속성에 무엇을 추가할지 잘 모르겠습니다. 다음은 내 코드 http : //jsfiddle.net/QKCgJ/ – John