0

我正在通过官方文档学习 ember.js,并拥有以下包含 mustache 模板的 html 页面:

 <section id="main">
      <ul id="todo-list">
        {{#each controller}}
        <li {{bindAttr class="isCompleted:completed"}}>
          <input type="checkbox" class="toggle">
          <label>{{title}}</label><button class="destroy"></button>
        </li>
        {{/each}}
      </ul>

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

但是,问题在于浏览器将数据显示为:

{{#each controller}}
  {{title}}
{{/each}} 

无需渲染提供到模板中的种子数据。我在正文标记结束之前有以下 javascript 声明:

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

  <script src="js/libs/application.js"></script>
  <script src="js/libs/router.js"></script>
  <script src="js/models/store.js"></script>
  <script src="js/models/todo.js"></script>

页面加载时没有任何萤火虫报告的错误。请让我知道我错过了什么。

4

1 回答 1

1

我猜你错过了一些基本的东西 - 你的“模板”周围的把手脚本标签,data-template-name应该根据你所在的路线命名,我在这里使用application只是为了示例。在您提到的官方指南中,如果您在嵌入式 jsbin 中启用 html 面板,您会明白我的意思,body标签下方是名为todos.

<script type="text/x-handlebars" data-template-name="application">
 <section id="main">
  <ul id="todo-list">
    {{#each controller}}
    <li {{bindAttr class="isCompleted:completed"}}>
      <input type="checkbox" class="toggle">
      <label>{{title}}</label><button class="destroy"></button>
    </li>
    {{/each}}
  </ul>

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

希望能帮助到你。

于 2013-08-22T11:37:00.723 回答