2012-11-16 112 views
0

我想了解ember.js的基本概念以及整個模板/視圖的東西如何一起工作(和一些最佳實踐),但是,我真的有問題找到我的答案問題....所以,也許,你可以幫我...基本ember.js模板概念

  1. "Getting started"說:「你可以用Ember.View呈現一個把手模板,並將其插入到DOM」,它暗示view.append()的用法。我下載了入門套件,並且有一個模板,一個視圖,它在沒有view.append()的情況下顯示。爲什麼?

  2. 我試圖擴展帶有佔位符{{message}}的模板,爲視圖添加了一個具有相同名稱的屬性,併爲其分配了一個值,但未呈現該值。爲什麼?

有人可以給我帶來一些燈光...提前非常感謝。鏈接和很好的Stackoverflow線程非常受歡迎。

的某些代碼示例:

的index.html:

<script type="text/x-handlebars" data-template-name="application"> 
<h1>Hello from Ember.js</h1> 
</script> 

app.js

App.ApplicationView = Ember.View.extend({ 
    templateName: 'application', 
    message : 'Hallo Du' 
}); 

如果我改變 '應用' 到「application_」,它仍然會被渲染。那麼,爲什麼我要定義一個模板名稱?

問候你好 Peter

+0

這是很難說出爲什麼你的屬性沒有顯示你的代碼。你可以添加一些問題或[jsdiffle](http://jsfiddle.net)。此外,你可能想看看[這個示例](http://jsfiddle.net/schawaska/hEx84/)(對不起,它需要幾秒鐘加載jsfiddle,我會在稍後修復) – MilkyWayJoe

+1

對不起,MilkyWayJoe ,我已經添加了一個簡短的例子。 –

+0

我覺得'application'是默認的模板名稱,所以如果你沒有定義'data-template-name',它會自動成爲應用程序。現在查看您的視圖和模板,我沒有看到作爲模板的一部分的{{message}}。另一個要點是,在1.0pre之後,要顯示視圖屬性/屬性,您必須執行'{{view.YourAttributeName}}',因此您可能想要將它作爲您的句柄模板中的「{{view.message}}」來使用。但是請等待,您是否僅僅通過「{{message}}」進行了嘗試? – MilkyWayJoe

回答

4

就像我在評論中所說的,在Ember 1.0pre(和更新版本)中,要顯示視圖屬性/屬性,您必須執行{{view.YourAttributeName}},因此您必須在用戶手柄模板中使用{{view.message}}。因此,這裏是你在你的JS做什麼:

App = null; 

$(function() { 

    App = Em.Application.create(); 

    App.ApplicationView = Ember.View.extend({ 
     templateName: 'application', 
     message : 'Hallo Du' 
    }); 
}) 

這裏與模板中的HTML頁面:

<body> 

    <script type="text/x-handlebars"> 
     <h1>Hello from Ember.js</h1> 
     {{view.message}} 
    </script> 

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js" ></script> 
    <script type="text/javascript" src="http://cloud.github.com/downloads/wycats/handlebars.js/handlebars-1.0.rc.1.js" ></script> 
    <script type="text/javascript" src="http://cloud.github.com/downloads/emberjs/ember.js/ember-latest.js" ></script> 
</body>​ 

檢查這個非常基本的擺弄着上面的工作代碼:http://jsfiddle.net/schawaska/MwXjG/