我试图根据入门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。标记的数据模板名称是随机的。
如果有人能帮助我解决我在这里出错的地方,我将非常感激。
干杯, 道格。
答案 0 :(得分:0)
认为你在ember组件和ember视图之间有点混淆 1.使用视图助手{{view App.ViewName}}调用视图。您的代码{{todo-element}}看起来更像是一个组件。