0
我有一個骨幹應用程序,它從url中讀取svn文件路徑,然後「ls」是它給出的路徑。通常情況下,它只是列舉了表中ls的結果。但是我想要做的是檢查路徑是否實際上只對應一個特定的文件,在這種情況下,取而代之地顯示文件的內容。backbone.js根據ajax請求的結果採取不同的行動
這樣做會是一個很好的主幹慣用方式嗎?現在在我所稱爲目錄模型解析功能,我想這樣做是這樣的:
parse: function(response, options) {
if (response.length == 1 && response[0].type == "file") {
// what to do here?
}
this.get('entries').reset(response);
$("#indicator").hide();
$('#directory-contents').show();
this.trigger('change');
return {};
},
所以我很想只是一種讓一個Ajax請求獲取文件這裏的內容(即在// what to do here?
),但a)直接做一個Ajax請求自己似乎不是很好,和b)我覺得我把兩個模型混合成一個。現在我的DirectoryView可能需要檢查某種標誌來判斷它是實際呈現一個目錄還是一個特定的文件。
有更好的方法來處理這個問題的任何想法?
我沒有計劃在模型中操作DOM,但如果我想要文件的實際內容,我將不得不做出單獨的ajax請求。有沒有更好的辦法可以做,而不僅僅是在上面的'parse'函數中有一個'$ .ajax(...)'? – Alec 2013-03-12 17:09:41
那麼,你可以設置一個事件處理程序,以便在'change:type'事件處理時,如果文件內容尚未加載,那麼可以在該點處獲取它。你也可以創建一個獨立的'loadContent'方法來讓你的視圖可以調用。 – 2013-03-12 17:26:35
我認爲這是你有一個FSEntry與2組數據:元數據和文件內容。遵循骨架模式,其中'fetch'獲取元數據,並製作另一個加載內容的'fetchContent'方法。一旦元數據到達,我不喜歡模型自動獲取內容的想法,儘管您可以這樣做。我寧願讓一個控制器或視圖告訴模型來獲取內容。 – 2013-03-12 17:29:56