2017-10-23 17 views
0

backbone.jsに慣れていません。現在、nw.jsアプリケーションを開発しています。ここでは、バックボーンを介して構築された既存のアプリケーションを埋め込む必要があります。バックボーンのJSONからモデルをロード

代わりがある場合は、.fetchメソッドを使用するためにローカルWebサーバーを実行したくありません。ノード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クロム引数を持っていますが、まだ動作しませんフェッチありません。

+0

ノードはウェブサーバを_is_ ... –

+1

問題は、あなたが'ファイルを取得しているということです君は。 –

+0

@JeremyThilleいいえ、chrome実行可能ファイルに '--allow-file-access-from-files --allow-file-access'引数を指定すると、ローカルの' json'データにアクセスすることができます。 –

答えて

0

私はjQueryにパッチを当てているので、いい考えではないかもしれませんが、jQueryの.doneコールバックを変更して成功コードにステータスコード '0'を追加することでこの問題を回避することができました。 // ...... `代わりにノードのサーバーへの呼び出しを行うのためのファイルを読み込みます:

// Determine if successful 

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

もっと良い解決策が見つかるまでこれが私が推測できる唯一の方法です。 –

関連する問題