首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ember文档理解-模型链接到模板或不?

Ember文档理解-模型链接到模板或不?
EN

Stack Overflow用户
提问于 2015-03-30 11:02:42
回答 1查看 46关注 0票数 1

我现在正在学习Ember,我有点困惑,因为Ember的文档和刚开始的例子。文件中说:

在Ember.js中,模板从控制器获得它们的属性,控制器可以修饰模型。

模板总是连接到控制器,而不是模型。

但是在做了入门指南之后,我不确定这是否正确。

我已经上传了完成的TodoMVC应用程序:https://github.com/Yannic92/stackOverflowExamples/tree/master/Ember/TodoMVC

Index.html中,您可以找到以下模板:

代码语言:javascript
复制
<script type="text/x-handlebars" data-template-name="todos/index">
<ul id="todo-list">
    {{#each todo in model itemController="todo"}}
    <li {{bind-attr class="todo.isCompleted:completed todo.isEditing:editing" }}>
        {{#if todo.isEditing}}
        {{edit-todo class="edit" value=todo.title focus-out="acceptChanges" insert-newline="acceptChanges"}}
        {{else}}
        {{input type="checkbox" checked=todo.isCompleted class="toggle"}}
        <label {{action "editTodo" on="doubleClick"}}>{{todo.title}}</label>
        <button {{action "removeTodo"}} class="destroy"></button>
        {{/if}}
    </li>
    {{/each}}
</ul>
</script>

我的问题是第三行:

代码语言:javascript
复制
{{#each todo in model itemController="todo"}}

控制器todo只需要为待办事项提供操作。即使没有此控制器,数据也是可访问的。在我看来,有一个模型与模板直接相关,不是吗?

或者有像这里提到的docu那样的默认控制器吗?

为了方便起见,Ember.js提供了从其模型中代理属性的控制器,以便您可以在模板中指定{{name}}而不是{{model.name}}。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-30 12:17:25

正如您在这一行中看到的:<script type="text/x-handlebars" data-template-name="todos/index">,这是/的模板,因为路由器有以下一行:this.route('todos', { path: '/'})。它将有一个名为TodosController的控制器,即使您没有编写一个成员,也会为您生成一个。所以当你删除它时,就会发生这样的事情。

在这个模板中,您循环遍历todo的列表。这些Todo模型中的每一个都由一个控制器TodoController来修饰。使用这一行:{{#each todo in model itemController="todo"}},您告诉成员对列表中的每个元素使用这个TodoController

如果您省略了itemController成员,那么假设todo是IndexRoute提供的IndexController模型的一部分。

默认情况下,ember有一个空控制器,它将所有内容代理到底层模型。(注:我相信这将在成员2.0中改变)。所以它看起来像是直接耦合到模型上。但是,您可以编写一个控制器,它可以更改所有,而不需要更改模型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29344511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档