4. Ember.js學(xué)習(xí)- 模板

THE APPLICATION TEMPLATE

application模板是程序的默認(rèn)模板睛廊,會在應(yīng)用啟東市被渲染形真。

你應(yīng)該在這里放置應(yīng)用的頭部,尾部超全,以及其他裝飾性的內(nèi)容咆霜。另外你應(yīng)該有至少一個{{outlet}}占位符,路由會根據(jù)當(dāng)前的URL嘶朱,選擇在outlet中插入合適的內(nèi)容蛾坯。

下面是一個例子:

屏幕快照 2015-04-12 下午7.57.11.png

頭部和尾部總是會被展示在頁面上,但是內(nèi)容區(qū)域的div會根據(jù)當(dāng)前 的URL是/posts 還是 /posts/15而做出改變疏遏。

如果你創(chuàng)建了一個標(biāo)簽脉课,但是沒有賦值template name,Ember會使用沒有模板名稱的模板作為application模板财异,并且自動餓將其編譯倘零,顯示到屏幕上


屏幕快照 2015-04-12 下午8.03.05.png

如果你使用構(gòu)建工具加載模板,請確保你模板的名稱是application戳寸。

HANDLEBARS 基礎(chǔ)

Ember.js 使用 Handlebars模板庫驅(qū)動用戶界面呈驶,Handlebars 模板和普通的HTML標(biāo)簽很像,但它給與了你內(nèi)嵌表達(dá)式以改變展示內(nèi)容的能力庆揩。

定義模板
屏幕快照 2015-04-12 下午9.14.45.png

這個模板沒有名字俐东,他會被編譯,并且作為應(yīng)用的application模板顯示給用戶订晌。你也可以給模板起一個名字虏辫,以備后續(xù)使用。

屏幕快照 2015-04-12 下午9.17.46.png
HANDLEBARS 表達(dá)式

每一個模板都有一個關(guān)聯(lián)的controller:模板就是在這里查找屬性用來顯示給用戶锈拨。

Hello, <strong>{{firstName}} {{lastName}}</strong>!

默認(rèn)的砌庄,頂層的application模板被綁定到ApplicationController:

屏幕快照 2015-04-12 下午9.24.36.png

最終的顯示結(jié)果就是:

Hello, <strong>Trek Glowacki</strong>!

這些表達(dá)式的綁定是雙向的,這意味著奕枢,如果模板中使用的值發(fā)生了變化娄昆,HTML顯示的內(nèi)容也會被自動的更新。

CONDITIONALS

有時你可能需要在屬性存在的時候才展示模板的部分內(nèi)容:

屏幕快照 2015-04-12 下午9.35.49.png

Handlebars只有在if條件為真時才會顯示if block中的內(nèi)容缝彬。

再看看一個if 配合else的例子


屏幕快照 2015-04-12 下午9.37.38.png
展示一個列表

使用{{#each}} 工具可以展示一個列表的內(nèi)容

屏幕快照 2015-04-12 下午9.39.26.png

渲染后的html內(nèi)容如下:


屏幕快照 2015-04-12 下午9.39.58.png

{{#each}}工具函數(shù)可以有一個{{else}}分支萌焰,如果集合為空,else分支的內(nèi)容就會被顯示出來谷浅。

屏幕快照 2015-04-12 下午9.43.51.png

綁定元素屬性

除了正常的文本內(nèi)容扒俯,你可能想要你的模板包含的HTML元素的屬性綁定到controller中奶卓。

屏幕快照 2015-04-12 下午9.47.28.png

如果給{{bind-attr}}使用布爾值,這樣就可以添加或者移除指定的屬性撼玄,例如:

屏幕快照 2015-04-12 下午9.49.41.png
添加DATA屬性

默認(rèn)情況下夺姑,view的工具函數(shù)不接受data屬性,例如:

屏幕快照 2015-04-12 下午9.53.57.png

有兩種方法可以支持data屬性掌猛,一種方式是為視圖添加一個屬性綁定

屏幕快照 2015-04-12 下午9.55.45.png

另一種方式是:在跟視圖上做自動綁定data屬性盏浙。

屏幕快照 2015-04-12 下午9.59.16.png

綁定類

元素的class屬性可以像其他屬性一樣進(jìn)行綁定

屏幕快照 2015-04-12 下午10.02.04.png
綁定到布爾值

如果你綁定的值是布爾類型,Ember.js會使用一個中劃線版本的屬性名作為類名荔茬。

屏幕快照 2015-04-12 下午10.05.20.png

你也可以指定一個類名

屏幕快照 2015-04-12 下午10.06.26.png
靜態(tài)類

如果你有一個元素废膘,他有一個靜態(tài)類和一個需要綁定的類,你需要在綁定屬性列表中包含該靜態(tài)類兔院,前綴加一個冒號:

屏幕快照 2015-04-12 下午10.11.25.png
綁定多個類
屏幕快照 2015-04-12 下午10.12.16.png

LINKS

{{link-to}} helps

你使用{{link-to}} 創(chuàng)建了一個link

屏幕快照 2015-04-12 下午10.22.24.png

ACTIONS

{{action}} HELPER

你的app經(jīng)常需要提供讓用戶和控件進(jìn)行交互的方式以改變程序的運(yùn)行狀態(tài)殖卑。
你可以使用{{action}} 工具讓一個元素可以點(diǎn)擊,當(dāng)用戶點(diǎn)擊該元素時坊萝,定義好的事件就會發(fā)送到你的應(yīng)用程序孵稽。

屏幕快照 2015-04-12 下午10.38.16.png

注意:action可以綁定到所有的DOM元素上,但不是所有的都能響應(yīng)click事件十偶,例如將一個action添加到?jīng)]有href屬性的A標(biāo)簽上菩鲜,或者添加到一個div上,一些瀏覽器就不會執(zhí)行關(guān)聯(lián)的function惦积,

ACTION參數(shù)

你可以選擇性的傳遞參數(shù)到action handler接校,在action name后的任何值將作為參數(shù)傳遞給handler

下面的例子將post對象傳遞給對應(yīng)的action定義

屏幕快照 2015-04-12 下午11.40.06.png
指定事件類型

默認(rèn)的當(dāng)用戶點(diǎn)擊元素時,{{action}} helper監(jiān)聽并觸發(fā)click事件狮崩,通過使用on選項(xiàng)蛛勉,你可以指定一個替代的事件,需要注意的是睦柴,你需要對事件的名稱格式化诽凌,例如兩個單詞的事件名稱,keypress應(yīng)該寫作keyPress

屏幕快照 2015-04-12 下午11.45.18.png
停止事件傳播

默認(rèn)坦敌,{{action}} helper 允許事件冒泡到父DOM節(jié)點(diǎn)侣诵,你可以阻止事件冒泡到父節(jié)點(diǎn)。

例如:你有一個a元素狱窘,在他的內(nèi)部有一?button杜顺,你要保證用戶點(diǎn)擊了 ?號后,a標(biāo)簽沒有被激活

屏幕快照 2015-04-12 下午11.51.03.png

如果沒有bubbles=false蘸炸,當(dāng)用戶點(diǎn)擊了button躬络,button的action就被觸犯,接著瀏覽器就會將事件傳播給a標(biāo)簽搭儒。

指定一個target

默認(rèn)的洗鸵,{{action}} helper 會將action發(fā)送給view的target越锈,這通常是view的controller,

你可以使用target選項(xiàng)指定一個替代的目標(biāo)膘滨,這個常用于發(fā)送action給view而不是controller,

屏幕快照 2015-04-12 下午11.58.09.png

INPUT HELPERS

{{input}} 和 {{textarea}} helpers被用來創(chuàng)建通用的form控件稀拐,
{{input}} helpers包裝了內(nèi)建的Ember.TextField and Ember.Checkbox views,{{textarea}}包裝了 Ember.TextArea

TEXT FIELDS
屏幕快照 2015-04-13 上午12.06.08.png
ACTIONS

分發(fā)action到指定的事件火邓,例如enter或者key-press

{{input value=firstName action="updateFirstName" on="key-press"}}

當(dāng)賦值給on時,事件名需要使用中劃線連接

CHECKBOXES
{{input type="checkbox" name="isAdmin" checked=isAdmin}}
屏幕快照 2015-04-13 上午12.10.17.png
TEXT AREAS
{{textarea value=name cols="80" rows="6"}}
屏幕快照 2015-04-13 上午12.11.32.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末德撬,一起剝皮案震驚了整個濱河市铲咨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蜓洪,老刑警劉巖纤勒,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異隆檀,居然都是意外死亡摇天,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門恐仑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泉坐,“玉大人,你說我怎么就攤上這事裳仆⊥笕茫” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵歧斟,是天一觀的道長纯丸。 經(jīng)常有香客問我,道長静袖,這世上最難降的妖魔是什么觉鼻? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮勾徽,結(jié)果婚禮上滑凉,老公的妹妹穿的比我還像新娘。我一直安慰自己喘帚,他們只是感情好畅姊,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吹由,像睡著了一般若未。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上倾鲫,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音捷犹,去河邊找鬼揽乱。 笑死,一個胖子當(dāng)著我的面吹牛壤追,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播供屉,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼行冰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了伶丐?” 一聲冷哼從身側(cè)響起悼做,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哗魂,沒想到半個月后肛走,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡录别,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年朽色,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庶灿。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡纵搁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出往踢,到底是詐尸還是另有隱情腾誉,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布峻呕,位于F島的核電站利职,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瘦癌。R本人自食惡果不足惜猪贪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望讯私。 院中可真熱鬧热押,春花似錦、人聲如沸斤寇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽娘锁。三九已至牙寞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背间雀。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工悔详, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惹挟。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓茄螃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親匪煌。 傳聞我的和親對象是個殘疾皇子责蝠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)萎庭,斷路器,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評論 6 342
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,868評論 6 13
  • 學(xué)習(xí)資料來自 Angular.cn 與 Angular.io齿拂。 模板語法 在線例子 在 Angular 中驳规,組件扮...
    小鐳Ra閱讀 3,716評論 0 3
  • 一對智力不是太高的夫妻 他們不會說太多客套的話 甚至連話都表達(dá)不太清楚 拿著自己手作的土特產(chǎn) 對我們表示感謝 并且...
    咸魚閱讀 117評論 0 0