gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 02:26:37 27 4
gpt4 key购买 nike

我使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com