2013-02-11 26 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锁定,而主流被锁定。

相关问题