首頁 >web前端 >js教程 >Backbone.js的Hello World程式實例_其它

Backbone.js的Hello World程式實例_其它

WBOY
WBOY原創
2016-05-16 15:53:501315瀏覽

新建一個api.php文件,內容:
 

複製程式碼 程式碼如下:

 header('Content-Type: application/json; charset=utf-8');
die(json_encode(array('name'=>'tom')));
 

新建一個index.html檔。 (backbone基於jquery、underscore,我們使用Mustache來做模板解析,當然用其他的haml、jade,或者underscore裡面的模板也都是可以)

內容:

複製程式碼 程式碼如下:



 
  New Document





 
 

<script></script>

{{name}} says: {{message}} 
p>


 

新建一個custom.js文件,內容:

複製程式碼 程式碼如下:

// 這是一個管理 視圖/控制/模型 的全域類別
var App = {
    Models: {},
Views: {},
Controllers: {},
Collections: {},
initialize: function() {
new App.Controllers.Routes();
        Backbone.history.start() // 要驅動所有的Backbone程序,Backbone.history.start()是必須的。
    }
};
App.Models.Hello = Backbone.Model.extend({
    url: function() {
        return '/api.php'; // 取得資料的後台位址。
    },
    initialize: function() {
     this.set({'message':'hello world'}); // 前端定義一個message字段,name字段由後端提供。
    }
});
App.Views.Hello = Backbone.View.extend({
el: $("body"),
template: $("#hello-container-template").html(),
initialize: function(options){
this.options = options;
this.bind('change', this.render);
this.model = this.options.model;
},
render: function(){ // render方法,目標只有兩個:填滿this.el,回傳this以便鍊式操作。
$(this.el).html(Mustache.to_html($(this.el).template,this.model.toJSON()) );
return this
}
});
App.Controllers.Routes = Backbone.Controller.extend({
routes: {
"!/hello" : "hello",//使用#!/hello驅動路由
},
hello : function() {
//新建一個模型,模型向後端請求更新內容成功後根據模型渲染新頁面
var helloModel = new App.Models.Hello;
helloModel.fetch({
success: function(model){
var helloView = new App.Views.Hello({model: model});
helloView.trigger('change');
}
})
}});
App.initialize();
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn