model-view-controller - Ember 多个 Controller 实例

标签 model-view-controller ember.js

我使用 Ember 已经有一段时间了,但有时仍然在努力寻找最佳实践。所以关于 Controller 和 View 的 Ember 方法之一是

an opinion of Ember's designers, that is enforced by the router is that for a given BaseName (e.g. "Application," "CustomerEntry," "My Items") there should be a BaseNameView and a BaseNameController. -- Ember guide



问题是,如果我想要一个页面上同一 View 的多个实例怎么办。由于 Controller 是在应用程序启动期间创建的,因此它们是应用程序命名空间下的单例,无法保存模型数据的两个实例。

我看到的一种解决方案是手动创建 Controller (和模型数据)并将它们传递给 View 。但在这种情况下,我希望 Ember 不会为我自动创建 Controller 。换句话说,为什么 Ember 会在应用程序启动期间将 Controller 创建为单例。

最佳答案

我认为有很多用例是 View 类型没有对应的 Controller 类型。尤其是当 View 类型更像是 UI 小部件而不是成熟的应用程序功能时。许多 View 可以共享同一个 Controller 。看看这个 applicationView 模板:

<h1>Here are two files, compare them</h1>
{{view App.MyFileView contentBinding="leftFileContent"}}
{{view App.MyFileView contentBinding="rightFileContent"}}

这将创建我的 View 类的两个实例,并将它们的内容属性绑定(bind)到 applicationController 上的两个不同属性。这两个 View 的 Controller 属性都设置为单例 applicationController 实例。

Controller 是单例的一个可能原因是它们能够通过 App.router.myController 之类的方式在全局命名空间中进行寻址。 .

关于model-view-controller - Ember 多个 Controller 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13015077/

相关文章:

c# - 如何使用 MVC 动态构建多个站点

php - 在 PHP 中使用 MVC 的 Post-Redirect-Get (PRG) 的最佳实践

java - MVC 架构中的 Rx

javascript - 基于模型类型的 ember 组件

javascript - 删除记录时的 EmberJS 事件

javascript - 使用 Ember.js,处理键盘事件的常见模式有哪些?

javascript - 使用 url 参数在 html 文件中打开 View

javascript - Ember : Prevent transition based on response

javascript - ember-qunit 测试前后如何调用 hook?

Ember.js 和 Canvas