使用不带模板脚本标签的ember.js

时间:2013-03-30 06:59:37

标签: javascript templates ember.js

哦,你是动态语言的上帝,你学习了Vim并使用开源,听到了我的祷告。

我非常希望使用 Ember.js 来创建我的应用程序。但我不能。亲爱的上帝,我是一个不值得的Java开发人员,我使用那些名为“IDE”的不纯软件帮助我自动完成并检查我的代码(异端邪说,我知道)。亲爱的上帝,我使用的特定IDE(一个名为Eclipse的模糊且未知的IDE,无人用过的东西)倾向于扼杀包含我的手柄模板的神圣和神圣的<script>标签。那些标签打破了自动完成和代码检查,因为异端IDE认为它的javascript。现在,由于我是一个不值得的人,我有点错误,我希望我的IDE能够接收,因此目前的情况非常难过。

为了让IDE帮助我再次编写HTML,亲爱的上帝,我非常希望将这些模板放在外部文件中。然后,我可以指示不纯的IDE将文本解析为HTML,然后继续作为依赖于他的工具的开发人员的悲惨生活。理想情况下,这些文件最终会在.html中,因为我的恶劣环境实际上使用文件扩展名来猜测文件的内容(你能相信这样一个可耻的东西)。但是我觉得.handlebars中的某些内容对我的罪人来说已经足够了。

所以,我要问的是,哦,你的云,是告诉我咒语,让所有这一切都发生。告诉我,我必须添加哪些内容app.js定义为

(function(Ember, $) {

    var App = Ember.Application.create();

});

})(Ember, jQuery);

我的index.html写的

<!doctype html>
<html>
<head>
    <title>Holy app</title>
</head>
<body>
    <script type="text/javascript" src="/lib/underscore-1.4.4.js"></script>
    <script type="text/javascript" src="/lib/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="/lib/handlebars-1.0.0-rc.3.js"></script>
    <script type="text/javascript" src="/lib/ember-1.0.0-rc.1.js"></script>
    <script type="text/javascript" src="/app.js"></script>
</body>
</html>

和我的外部application.html包含以下

<div id="prayers">
    <p>
        Oh you who know all UNIX terminal command<br>
        You who shall not support any legacy code and tools<br>
    </p>
    <p>
        Make it so that this text appear in my browser<br>
        So that all of us Java and C# sinner<br>
        See the light and reveal in your dynamic way<br>
    </p>
    <p>
        Pardon our sin when we believe that using automatic refactoring tool is useful<br>
        And free us from our reliance on static typing to make less mistake<br>
    </p>
    {{holyAnswer}}
</div>

以便application.html的内容在index.html中找到答案?

我知道App.ApplicationView = Ember.View.create(),我听说过Ember.Handlebars.compile(),但我虚弱的头脑不知道如何使其发挥作用或我应该如何使用它。我不纯的方式已经包括编译,所以我可以使用javascript构建工具,如果这是你问我的负担。

请你,网络上的你,开放标准的你,在困难时期帮助我。

修改

亲爱的上帝,我知道这个问题Is it possible to load handlebar template with script tag? Or define handlebar templates programmatically in Ember.js,但答案并没有告诉我如何制作它,以便我的模板相当于神圣的<script>标记{ {1}}示例。此模板似乎是应用程序根目录,我不知道如何告诉ember.js使用它。

1 个答案:

答案 0 :(得分:2)

您需要在外部预编译模板。由于您是Java开发人员,因此Maven plugin可能对您有用。 使用此插件将模板编译为一个JS文件,其中包含编译形式的所有模板。然后你需要做的就是在你的html中包含这个JS文件。我自己将模板编译成一个名为'templates.js'的文件。在这种情况下,您的HTML将是:

<!doctype html>
<html>
<head>
    <title>Holy app</title>
</head>
<body>
    <script type="text/javascript" src="/lib/underscore-1.4.4.js"></script>
    <script type="text/javascript" src="/lib/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="/lib/handlebars-1.0.0-rc.3.js"></script>
    <script type="text/javascript" src="/lib/ember-1.0.0-rc.1.js"></script>
    <script type="text/javascript" src="/templates.js"></script>
    <script type="text/javascript" src="/app.js"></script>
</body>
</html>