摘要:使用和架構(gòu)創(chuàng)建一個(gè)典型的項(xiàng)目。屬性被賦值給傳入的函數(shù)運(yùn)行的結(jié)果。渲染,我們使用,這是一個(gè)對(duì)象,它指向的屬性,使用函數(shù)使用的結(jié)果替換。最后,啟動(dòng)整體應(yīng)用,為了保證完全加載,用包裝器調(diào)用完整日常練習(xí)一些在對(duì)象初始化的時(shí)候執(zhí)行的代碼
使用Backbone.js 和 MVC 架構(gòu)創(chuàng)建一個(gè)典型的Hello world項(xiàng)目。雖然是“殺雞用牛刀了”,畢竟是我第一次使用Backbone.js
依賴jQuery 1.9.1
Undersore.js 1.5.0
Backbone.js
開始backbone日常練習(xí)
在 extend 調(diào)用里設(shè)置指定的 routes 屬性:
var router = Backbone.Router.extend({ routes: { " ": "home" } });
Backbone中routes 屬性需要下面的格式: ‘path/:param’: "action",它實(shí)現(xiàn)了是當(dāng)URl是 filename#path/param時(shí), 觸發(fā)名為action 的函數(shù)(在Router 對(duì)象里定義)。然后添加一個(gè) home 路由:
var router = Backbone.Router.extend({ routes: { " ": "home" } });
現(xiàn)在我們需要添加一個(gè) home 函數(shù):
var router = Backbone.Router.extend({ routes: { " ": "home" } ‘home’: function (){ // 渲染 HTML } });
添加創(chuàng)建和渲染 View 的邏輯。現(xiàn)在先定義 homeView:
var homeView = Backbone.View.extend({ });
然后給 homeView 添加屬性
var homeView = Backbone.View.extend({ el: "body", teplate: _.template("Hello world!") });
el 是一個(gè)保存 jQuery 選擇器的字符串,也可以使用"."作為類和"#"作為ID名。template屬性被賦值給傳入 Hello World 的 Underscore.js 函數(shù) template 運(yùn)行的結(jié)果。
渲染 homeView, 我們使用 this.$el, 這是一個(gè) jQuery 對(duì)象,它指向 el 的屬性,使用 jQuery.html() 函數(shù)使用 this.template() 的結(jié)果替換 HTML。 下面是完整的 homeView 代碼:
var homeView = Backbone.View.extend({ el: "body", template: _.template("Hello World"), render: function (){ this.$el.html(this.template({})); } });
現(xiàn)在我們返回到 router,添加兩行到 home 函數(shù):
var router = Backbone.Router.extend({ routes: { "": "home" }, initialize: function (){ // 一些在對(duì)象初始化的時(shí)候執(zhí)行的代碼 }, home: function (){ this.homeView = new homeView; this.homeView.render(); } });
第一行創(chuàng)建了一個(gè) homeView 對(duì)象并且賦值給 router 的 homeView 屬性。第二行調(diào)用 homeView 對(duì)象的 render() 方法,觸發(fā) Hello World! 輸出。
最后,啟動(dòng)整體 Backbone 應(yīng)用,為了保證 Dom 完全加載, 用 $(function (){}) 包裝器調(diào)用 new router:
var app; $(function (){ app = new router; Backbone.history.start(); });完整DEMO
backbone日常練習(xí)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91452.html
摘要:它通過數(shù)據(jù)模型進(jìn)行鍵值綁定及事件處理,通過模型集合器提供一套豐富的用于枚舉功能,通過視圖來進(jìn)行事件處理及與現(xiàn)有的通過接口進(jìn)行交互。 本人兼職前端付費(fèi)技術(shù)顧問,如需幫助請(qǐng)加本人微信hawx1993或QQ345823102,非誠勿擾 1.為初學(xué)前端而不知道怎么做項(xiàng)目的你指導(dǎo) 2.指導(dǎo)并扎實(shí)你的JavaScript基礎(chǔ) 3.幫你準(zhǔn)備面試并提供相關(guān)指導(dǎo)性意見 4.為你的前端之路提供極具建設(shè)性的...
摘要:因?yàn)槭且粭l數(shù)據(jù)記錄,也就是說,相當(dāng)于是一個(gè)數(shù)據(jù)集。通常我們需要重載函數(shù),聲明,以及通過或?yàn)橐晥D指定根元素。通過綁定視圖的函數(shù)到模型的事件模型數(shù)據(jù)會(huì)即時(shí)的顯示在中。實(shí)例屬性參數(shù)以及類屬性參數(shù)會(huì)被直接注冊(cè)到集合的構(gòu)造函數(shù)。 對(duì)于初學(xué)backbone.js的同學(xué)可以先參考我這篇文章:Backbone.js學(xué)習(xí)筆記(一) Backbone源碼結(jié)構(gòu) showImg(https://segme...
摘要:數(shù)據(jù)更新的時(shí)候,支持多事件和自定義事件。然后使用兩個(gè)事件和的自定義事件。我們將使用別名函數(shù)。是為了模擬從服務(wù)器獲取響應(yīng)的時(shí)間。在它內(nèi)部里面,使用和返回模型屬性把選中的模型賦值給當(dāng)前視圖的模型。 前言: 我們繼續(xù)使用上一次寫的圖書案例,在基礎(chǔ)上面進(jìn)行改進(jìn)! 事件綁定 在我們?yōu)g覽網(wǎng)頁的時(shí)候,獲取數(shù)據(jù)并不是一下只就全部獲取到的,為了創(chuàng)建一個(gè)更好的用戶體驗(yàn),就來模擬一個(gè)加載(Spi...
摘要:數(shù)字整型與浮點(diǎn)型整數(shù)沒有之分浮點(diǎn)數(shù)里面沒有單精度和雙精度之分表示整除進(jìn)制進(jìn)制,進(jìn)制,進(jìn)制,進(jìn)制,,,。。。。 Number:數(shù)字 1)整型與浮點(diǎn)型 整數(shù):int(沒有short、int、long之分) 浮點(diǎn)數(shù):float(python里面沒有單精度和雙精度之分) >>> print(hello world) hello world >>> 1 1 >>> 133434 133434 >...
閱讀 904·2021-10-13 09:39
閱讀 1491·2021-10-11 10:57
閱讀 2604·2019-08-26 13:53
閱讀 2546·2019-08-26 12:23
閱讀 3700·2019-08-23 18:30
閱讀 3758·2019-08-23 18:08
閱讀 2530·2019-08-23 18:04
閱讀 2967·2019-08-23 16:28