Ember.js todo app车把模板问题

时间:2014-02-15 21:45:41

标签: javascript jquery ember.js

我对Ember很新,我正在尝试按照ToDo应用程序教程。但是,我很难在index.html文件中生成一个把手脚本。以下是索引文件看起来前手柄脚本

的内容
<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Ember.js • TodoMVC</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <section>
    <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 src="js/libs/jquery-1.10.2.min.js"></script>
    <script src="js/libs/handlebars-1.1.2.js"></script>
    <script src="js/libs/ember-1.4.0.js"></script>
    <script src="js/libs/ember-data.js"></script>
    <script src="js/application.js"></script>
    <script src="js/router.js"></script>
  </body>
</html>

但是,当我在主体元素中包装把手脚本标记时,其他HTML元素无法正确呈现。代码不能在我的浏览器中运行,我怀疑脚本在某个地方缺少关闭元素。我不知道在哪里。有没有人有任何指针。非常感谢并提前感谢你。

 <script type="text/x-handlebars" data-template-name="todos">
    <section>
    <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>

3 个答案:

答案 0 :(得分:0)

我不完全确定问题是什么,但我会检查所有js文件是否正确加载。我实际上尝试了使用JS Bin的here的ToDo演示,但我没有看到它正在运行。但是,在获取该代码并将其置于jsfiddle中后,其中的源代码已加载到<head>标记中,它确实有效。

以下是jsfiddle的链接,此处是指向live version的链接。我会检查第二个链接上的输出,看看它和你的代码之间有什么不同。

希望你的问题得到解决!

答案 1 :(得分:0)

我在完成教程时遇到了同样的问题。 诀窍是脚本包含的顺序。确保首先包含框架依赖项,然后是application.js,最后是router.js。见下文:

<!-- ... Ember.js and other javascript dependencies ... -->
<script src="js/libs/jquery-1.10.2.min.js"></script>
<script src="js/libs/handlebars-1.0.0.js"></script>
<script src="js/libs/ember.js"></script>
<script src="js/libs/ember-data.js"></script>
<script src="js/application.js"></script>
<script src="js/router.js"></script>

答案 2 :(得分:-2)

你不能在&lt;上写html脚本&gt;元素!!