没有显示视图的内容,基于TODO教程的简单应用程序,ember.js

时间:2014-06-02 08:08:46

标签: ember.js

我试图根据入门Ember.js教程中的一个创建一个简单的TODO应用程序,但是持久化到后端。

我已经完成了所有工作,直到我想要查看包装我的标记以在视图中呈现待办事项(称为' todo-element'),以启用拖放功能。放弃排序。

然后,我的观点拒绝呈现。我已经简化了视图的标记,只是为了渲染文本“Hello'”来尝试调试。视图的实例将tagName设置为' li'。因此,我应该获取带有文字的lis列表' Hello'在他们中。但是,我得到的只是一个空的lis列表。

这是标记:

<!DOCTYPE html>
<html>
<head>
  <title>Todos</title>
</head>
<body>


<script type="text/x-handlebars">
  {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="todos">
  <section id="todos">
    <header>
      <h1>The TODOs</h1>
      {{input type="text" placeholder="Enter new TODO description here ..."
              value=newDescription action="createTodo"}}
      <button {{action "createTodo"}} id="add-todo">Add</button>
    </header>
    <ul id="todos">
      {{#each itemController="todo"}}
        {{todo-element}}
      {{/each}}
    </ul>
  </section>
</script>

<script type="text/x-handlebars" data-template-name="todo-element">
  <span>Hello</span>
</script>

  <script type="text/javascript" src="javascripts/jquery"></script>
  <script type="text/javascript" src="javascripts/handlebars-1.0.0.js"></script>
  <script type="text/javascript" src="javascripts/ember.js"></script>
  <script type="text/javascript" src="javascripts/ember-data.js"></script>
  <script type="text/javascript" src="javascripts/todos/app.js"></script>
  <script type="text/javascript" src="javascripts/todos/todo.js"></script>
  <script type="text/javascript" src="javascripts/todos/router.js"></script>
  <script type="text/javascript" src="javascripts/todos/todos_controller.js"></script>
  <script type="text/javascript" src="javascripts/todos/todo_controller.js"></script>
  <script type="text/javascript" src="javascripts/todos/todo_element_view.js"></script>
  <script type="text/javascript" src="javascripts/todos/edit_todo_view.js"></script>

</body>
</html>

这是视图的代码:

Todos.TodoElementView = Ember.View.extend( {
  templateView : 'todo-element',
  tagName      : 'li'
} );

Ember.Handlebars.helper( 'todo-element', Todos.TodoElementView );

我最好的猜测是&#39; todo-element&#39;标记没有与TodoElementView相关联,因为如果我更改了“todo-element”,我会获得完全相同的空列表lis。标记的数据模板名称是随机的。

如果有人能帮助我解决我在这里出错的地方,我将非常感激。

干杯,    道格。

1 个答案:

答案 0 :(得分:0)

认为你在ember组件和ember视图之间有点混淆 1.使用视图助手{{view App.ViewName}}调用视图。您的代码{{todo-element}}看起来更像是一个组件。

  1. 在你的组件中,你有一个静态标签span hello所以我猜它只显示你好。使用{{}}
  2. 将动态数据放入其中