2013-02-11 34 views
4

所以我在退房Emberjs我需要什麼來真正開始使用emberjs?

在主頁上向下滾動一小段「使用EMBER.JS很簡單。」

太棒了,看起來很簡單,我會給它一個。

創建一個新的樣板文件HTML5。

他們的模板代碼粘貼到我的:

<body></body> 

包括emberjs:

<script src="ember.js" type="text/javascript"></script> 

包括他們到所提供的JS代碼:

<script type="text/javascript"></script> 

在我頭上的標籤。太好了,讓我們看看會發生什麼。

加載頁面,控制檯告訴我它需要jQuery。所以沒有問題,我包括jQuery。再試一次,另一個錯誤,我需要包含把手。沒問題,我包括車把。再試一次,應用程序未定義...正確...所以我包括

window.App = Ember.Application.create(); 

在他們提供的代碼片段的上方。再試一次,DS沒有定義。此時我不知道下一步該去哪裏。我看了一下emberjs guides section,因爲我認爲我必須在某處定義DS模型或其他東西。但導遊沒有用。

我是否錯過了明顯的東西,或者這實際上不像他們說的那麼「容易」?爲了使這個基本的例子能夠工作,我需要做些什麼(以及爲什麼他們給了'基本'的代碼,這些代碼並不能解決這個問題)?

編輯:

我完整的代碼迄今:

<!DOCTYPE html> 
<html> 
<head> 
<script src="jquery.js" type="text/javascript"></script> 
<script src="handlebars.js" type="text/javascript"></script> 
<script src="ember.js" type="text/javascript"></script> 
<script type="text/javascript"> 
window.App = Ember.Application.create(); 
App.Person = DS.Model.extend({ 
    firstName: DS.attr('string'), 
    lastName: DS.attr('string'), 

    fullName: function() { 
    return this.get('firstName') + 
      " " + this.get('lastName'); 
    }.property('firstName', 'lastName') 
}); 

App.peopleController = Em.ArrayController.create({ 
    content: App.Person.findAll() 
}); 
</script> 
</head> 
<body> 
<h1>People</h1> 

<ul> 
{{#each peopleController}} 
    <li>Hello, <b>{{fullName}}</b>!</li> 
{{/each}} 
</ul> 
</body> 
</html> 
+0

我強烈建議在使用Ember時打開Firebug的控制檯。錯誤信息很好,但可能不清楚它們是否提供。希望入門指南提到它們存在。 – 2013-03-07 15:09:51

回答

2

問題不在於你,而在於文檔忽略了列出所需的依賴關係,Handlebars的命名約定,並突然開始討論Post控件而不提供代碼。還有一些地方會有一些認知前沿參考,所以如果你瞭解EmberJs,這個指南是有道理的,但是如果你想要學習新鮮的東西,你必須跳過,做出假設,並進行一些測試。

雖然這不是EmberJS應用程序所需的最小代碼,但它應該足以讓您開始插入大約80%的「入門指南」。希望這可以幫助。

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Demo</title> 
<script src="jquery-1.9.1.js"></script> 
<script src="handlebars.js"></script> 
<script src="ember-1.0.0-rc.1.js"></script> 
</head> 
<body> 


<script language="javascript" type="text/javascript"> 

    // Make a global variable -- http://emberjs.com/guides/application/ 
    App = Ember.Application.create({ 
    VERSION: '1.0.0', 
    // store: Ember.Store.create().from(Ember.fixtures) 
    }); 

    // http://emberjs.com/api/classes/Ember.Application.html 
    App.ready = function() { 
    // alert("App initialized!"); 
    }; 

    // Application Controller, extended with custom properties 
    App.ApplicationController = Ember.Controller.extend({ 
    appName: 'My First Example', 

    firstName: "Charlie", 
    lastName: "Brown", 

    // initial value 
    isExpanded: false, 

    expand: function() { 
     this.set('isExpanded', true); 
    }, 

    contract: function() { 
     this.set('isExpanded', false); 
    } 
    }); 


    // A router 
    App.ApplicationRoute = Ember.Route.extend({ 
    setupController: function(controller) { 
     // `controller` is the instance of ApplicationController 
     controller.set('title', "Hello world!"); 
    } 
    }); 


</script> 


<script type="text/x-handlebars" data-template-name="application"> 
    <header> 
    <h1>A Header - {{appName}}</h1> 
    </header> 

    <div> 
    Hello, {{firstName}} {{lastName}}. 
    <p/> 

    {{#if isExpanded}} 
    <div class='body'>{{body}}</div> 
    <button {{action "contract"}}>Contract</button> 
    {{else}} 
    <button {{action "expand"}}>Show More...</button> 
    {{/if}} 

    <hr/> 
    {{outlet}} 
    <hr/> 


    </div> 

    <footer> 
    <H1>A Footer</H1> 
    </footer> 
</script> 


</body> 
</html> 
0

你並不需要定義DS店,除非你已包括灰燼數據。我有jsfiddle上最基本的Ember起始模板。您可以查看渲染幀的來源,以瞭解您只需要3個JS文件(您已包含這些文件)以使應用程序可以正常工作。

從那裏取決於你,但是我承認文檔缺乏從頭開始。

從您的編輯中,您有一個DS對象引用,但是您沒有引用Ember Data腳本。它目前是默認EmberJS腳本的一個附件,因爲它沒有被API鎖定,而主流被鎖定。

相關問題