2017-10-23 15 views
0

backbone.js에 익숙하지 않습니다. 현재 nw.js 앱을 개발 중입니다. 여기에서 백본을 통해 구축 된 기존 앱을 삽입해야합니다.백본의 JSON에서 모델로드

대안이있는 경우 .fetch 메소드를 사용하기 위해 로컬 웹 서버를 실행하고 싶지 않습니다. 노드 fs 패키지로 파일을 쉽게 읽을 수 있습니다.

다음은 코드입니다.

loadpages: function(){ 
    this.activeBook.fetch({ 
    url: url, //file://....... 
    success: function(collection, response, options){ 
     self.renderBook(); 
     self.renderNav(); 
    }, 
    error: function(collection, response, options){ 
     //alert("Error"); 
     return; 
    } 
    }); 
} 

renderBook: function(){ 
    myapp.bookView = new myapp.BookView({ 
    collection: this.activeBook, 
    instanceURL : url, 
    }); 
}, 

대상 :

var fs = require('fs'); 
fs.readFile(url, 'utf8', function (err, data) { 
    if (err) throw err; 
    var book = JSON.parse(data); 
    // render the json as model 
}); 

참고 : 나는 --allow-file-access-from-files --allow-file-access 크롬 인자들을 가지고 있지만 작동하지 않습니다 아직 가져 오지 않습니다. 내가 jQuery를 패치하고있어하지만 난 성공 콜백 상태 코드를 '0'을 추가하는 jQuery의되는 .done 콜백을 변경하여 해결하기 위해 관리했습니다 이후

+0

노드가 웹 서버를 _is_ ... –

+1

문제는 당신이'파일을 가져 오는 것이다 : // ...'대신에 파일을 읽을 것이다 노드 서버에 호출을의 당신. –

+0

@JeremyThille 아니는 크롬 실행에서 가진'--allow-파일 액세스에서-파일 --allow-파일 access' 인수는 로컬'json' 데이터에 액세스 할 수있게된다. –

답변

0

OK, 아마 좋은 생각이;

// Determine if successful 

isSuccess = status === 0 || status >= 200 && status < 300 || status === 304; 
+0

내가 더 나은 해결책을 찾을 때까지 이것이 내가 생각한 유일한 방법이다. –