基本的ember.js模板概念

时间:2012-11-16 14:57:09

标签: templates view ember.js handlebars.js

我正在尝试理解ember.js的基本概念以及整个模板/视图内容如何协同工作(以及一些最佳实践),但是,我真的有问题找到我的问题的答案......所以也许,你们中的一个可以帮助我......

  1. "Getting started"说:“您可以使用Ember.View呈现Handlebars模板并将其插入DOM”,并建议使用view.append()。我下载到入门套件,有一个模板,一个视图,它显示没有view.append()。为什么呢?

  2. 我尝试使用占位符{{message}}扩展模板,为视图添加了一个具有相同名称的属性,并为其分配了值,但未呈现。为什么呢?

  3. 有人可以为我带来一些启示......非常感谢提前。链接和良好的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'更改为'application_',它仍会被渲染......那么,为什么要定义模板名称?

    祝你好运 彼得

1 个答案:

答案 0 :(得分: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/