ember.js - 使用 Handlebars 最终什么也不显示

标签 ember.js

首先,我是新用户,所以如果这不是提出这个问题的地方,或者问题泄露了详细信息,请通知我,我会进行必要的调整。

我是 Ember.JS 的新手,最近通过阅读 getting started guide 开始学习.

在本指南的早期阶段,我已经在处理下一个问题:

所有阶段都运行良好,直到我需要更新我的 index.html 以包装 <body> 的内部内容的阶段在这个 Handlebars 脚本标签中:

<script type="text/x-handlebars" data-template-name="todos">.....</script>

如本指南第 5 步所述。

在我这样做后我的窗口最终什么都不显示 (除了背景图片)

这是我的文件的样子(分层):

https://dl.dropboxusercontent.com/u/24149874/image.png

这些是指南中前面步骤中相关文件的内容:

index.html
<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Ember.js • TodoMVC</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <script type="text/x-handlebars" data-template-name="todos">
        <section id="todoapp">
          <header id="header">
            <h1>todos</h1>
            <input type="text" id="new-todo" placeholder="What needs to be done?" />
          </header>

            <section id="main">
              <ul id="todo-list">
                <li class="completed">
                  <input type="checkbox" class="toggle">
                  <label>Learn Ember.js</label><button class="destroy"></button>
                </li>
                <li>
                  <input type="checkbox" class="toggle">
                  <label>...</label><button class="destroy"></button>
                </li>
                <li>
                  <input type="checkbox" class="toggle">
                  <label>Profit!</label><button class="destroy"></button>
                </li>
              </ul>

              <input type="checkbox" id="toggle-all">
            </section>

            <footer id="footer">
              <span id="todo-count">
                <strong>2</strong> todos left
              </span>
              <ul id="filters">
                <li>
                  <a href="all" class="selected">All</a>
                </li>
                <li>
                  <a href="active">Active</a>
                </li>
                <li>
                  <a href="completed">Completed</a>
                </li>
              </ul>

              <button id="clear-completed">
                Clear completed (1)
              </button>
            </footer>
        </section>

        <footer id="info">
          <p>Double-click to edit a todo</p>
        </footer>
    </script>

    <script src="libs/jquery-1.10.js"></script>
    <script src="libs/handlebars.js"></script>
    <script src="libs/ember.js"></script>
    <script src="libs/ember-data-0.13.js"></script>

    <script src="application.js"></script>
    <script src="router.js"></script>   

  </body>
</html>

应用程序.js
window.Todos = Ember.Application.create();

路由器.js
Todos.Router.map(function () {
this.resource('todos', { path: '/' });
});

当然,我试图在其他相关帖子中找到答案,但我发现没有任何帮助。

感谢你的帮助!

最佳答案

我想这里唯一缺少的是application模板本身。

尝试定义一个这样的:

<script type="text/x-handlebars" data-template-name="application">
  {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="todos">
  ...
</script>
{{outlet}}这很重要,因为您需要告诉 ember 在哪里注入(inject)您的 todos模板。

here对于一个工作示例,不包含 css 文件,因此一切都搞砸了是正常的,但基本设置正在工作。

希望能帮助到你。

关于ember.js - 使用 Handlebars 最终什么也不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17572712/

相关文章:

Ember.js 路由器在 Firefox 和 IE 中推送额外状态,但在 Chrome 中不推送

javascript - Ember 选择不工作

ember.js - 使用 Ember 进行导航的正确方法

jquery - Ember 验收测试 andThen() 不会等到滚动事件完成

javascript - 检查相关对象在 Ember 和 Ember 数据中是否为 null

ember.js - 每当 {{input}} Ember Handlebars 帮助器的值发生变化时调用 Controller 方法

ember.js - 基本 Ember.js 路由和数据加载

javascript - 如何使用 Ember.js handlebars 获取输入类型 ="date"的值?

rest - 部分响应是否非 RESTful

node.js - npm install without symlinks 选项不起作用