Handlebars基礎
Ember.js使用 Handlebars模板庫 來增強用戶介面。Handlebars與普通HTML相似,但提供了能改變顯示內容的嵌入表達式 (embed expressions)。
渲染模板後,不需要額外的代碼,內容就能自動更新。
如果你習慣基於縮排的語法,可以熟習Handlebars後嘗試 Emblem.js。
定義模板
如果你沒有使用構建工具(build tools),可以在HTML中使用<script>
標簽定義模板:<html> <body> <script type="text/x-handlebars"> Hello, <strong>{{firstName}} {{lastName}}</strong>! </script> </body> </html>這個模板會自動編譯成為應用的主模板,它會在應用載入時由路由顯示在頁面。
你可以為模板取一個名字,以便重覆使用。例如一個多次出現的控制面板。如果想保留模板而非即時顯示,你可以使用
data-template-name
屬性:<html> <head> <script type="text/x-handlebars" data-template-name="say-hello"> <div class="my-cool-control">{{name}}</div> </script> </head> </html>
如果你正在使用構建工具管理應用,你應該知道怎樣預編譯Handebars模板並應用於Ember.js
Handlebars表達式
每個模板都有其關聯的控制器,模板會從中尋找要顯示的屬性。你可以使用花括號包圍屬性名稱,以顯示屬性:
Hello, <strong>{{firstName}} {{lastName}}</strong>!這會從控制器中搜尋
firstName
和lastName
屬性,插入至HTML中,然後放進DOM。預設情況下,第一個未命名的模板將與
ApplicationController
關聯,App.ApplicationController = Ember.Controller.extend({ firstName: "Trek", lastName: "Glowacki" });
這個控制器與模板結合後,渲染的HTML為:
Hello, <strong>Trek Glowacki</strong>!
這些表達式(以及之後會提到的其他功能)具綁定機制,即HTML會隨著屬性的改變而自動更新。
隨著應用規模增加,將存在許多的模板,並與不同控制器關聯。
翻譯自:http://emberjs.com/guides/templates/handlebars-basics/
參考:http://emberjs.cn/guides/templates/handlebars-basics/
沒有留言:
發佈留言