JavaScript的相當新,所以它可能是一個noobish問題。JavaScript骨幹模型設計
在我的項目中,我爲我的服務器使用了NodeJS,客戶端使用了Backbone。客戶端將向服務器發送請求,服務器將發送服務器中的文件列表,我的目標是簡單地返回文件列表,當用戶單擊該文件時,它會向服務器發送另一個請求以加載文件。
目前在客戶端級別我的模型和收集的定義是這樣的:
app.MyFile = Backbone.Model.extend({
defaults: {
modifiedDate: new Date(),
path: '',
content: '' // content of the file
}
});
var MyFileList = Backbone.Collection.extend({
model: app.MyFile,
url: '/api/files'
});
// create global collection of files
app.MyFiles = new MyFileList();
app.AppView = Backbone.View.extend({
initialize: function() {
// fetch all files
app.MyFileList.fetch();
}
});
// app.js (point of entry)
$(function() {
// Kick things off by creating the **App**.
new app.AppView();
});
而我的服務器代碼:
var application_root = __dirname,
express = require("express"),
...
app.get('/api/files', function(req, res) {
...
// return file list
}
app.get('/api/files/:id', function(req, res) {
...
// return file content?
}
既然沒有意義加載中的所有文件目錄並將其發送回客戶端,我所做的是我在服務器中創建了模型,並填寫了modifiedDate
和path
,同時將content
更改爲null
。但現在的問題是,如何在用戶點擊文件時填寫content
?我不確定如何手動發送來自Backbone View或控制器的HTTP請求。或者有沒有更好的方法來做到這一點?我能想到的一種方式是創建另一個只保留modifiedDate
和path
的模型,但對我來說這看起來非常冗長和重複。
真棒。我不知道你可以從模型中調用fetch()。閱讀api時一定錯過了它。謝謝! – GantengX