1
我的視圖正確顯示假信息,所以我現在試圖應用異步數據加載來檢索實際數據。問題是我不確定我應該如何去做這件事。我應該自己創建AJAX調用嗎?我應該使用Socket API嗎?我應該使用內置的REST api(以及如何異步執行)?服務器端處理程序仍然未實現,因此服務器如何提供數據,這是完全靈活的。我應該如何將數據附加到我的Backbone視圖?
我的視圖正確顯示假信息,所以我現在試圖應用異步數據加載來檢索實際數據。問題是我不確定我應該如何去做這件事。我應該自己創建AJAX調用嗎?我應該使用Socket API嗎?我應該使用內置的REST api(以及如何異步執行)?服務器端處理程序仍然未實現,因此服務器如何提供數據,這是完全靈活的。我應該如何將數據附加到我的Backbone視圖?
我懷疑你自己的Ajax調用是這裏需要什麼...
我不能告訴插槽但我知道這是可能的,堅實的想法取決於你的應用程序。
我一直在使用默認的REST的功能,它很適合我, 一個小例子,我會怎麼做,
使它不那麼複雜,我將只是充當如果是從頁面加載,而不是使用路由器和全部。
var myView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'render');
var v = this;
this.model.bind("change", function(e) {
this.render();
});
},
render: function() {
this.el.empty();
this.el.text(this.model.get('name'));
}
});
var myModel = Backbone.Model.extend({
url: "/api/myModel", // change to your server code...
defaults: {
name: "john"
}
});
$(function(){
var m = new myModel({}); // dummy model
var v = new myView({ model: m, el: $('#myDiv')});
v.render();
m.fetch(); // takes the url of the model or collection and fetches it from the server side ...
});
,如果你想測試一下取會做,你可以試試這個代碼從控制檯(或將它添加到jQuery的文檔加載功能:
m.set({ name: 'peter' });
此更改模型屬性「名」,你會馬上看到視圖本身更新,因爲它會監聽到模型的變化事件
對這些事件更多信息可以在這裏找到:http://documentcloud.github.com/backbone/#Events
你缺少的一件事是整個異步模型如何起作用。例如http://quickleft.com/blog/leveraging-deferreds-in-backbonejs但顯然這個模型存在問題。你如何去了解異步加載位? – chacham15
它在那裏:),仔細看看'm.fetch()'...它啓動一個調用服務器(通過在模型中定義的URL)你的服務器端可以看你喜歡的任何方式,它只需要返回一個模型,我不能告訴你服務器端代碼,因爲我不知道你將使用什麼樣的服務器技術,asp.net,php,node.js,... – Sander