gpt4 book ai didi

javascript - Em.Controller 在 Ember.js 中的作用是什么

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:49:12 25 4
gpt4 key购买 nike

我正在自学 ember.js。

我想知道 Em.Controller 的确切作用。


当我制作基本的 ember 应用程序时,我唯一一次使用 Em.Controller 是

App.ApplicationController = Em.Controller.extend();

但我不知道为什么它应该是 Em.Controller 而不是 Em.ArrayController 或 Em.ObjectController。


我知道 ArrayController 或 ObjectController 用于处理模型。

所以我明白在处理模型时我必须使用 ArrayController 或 ObjectController。

但是 Em.Controller 呢?

它只存在于 App 的 ApplicationController 中吗?


Em.ArrayController 和 Em.ObjectController 似乎不是从 Em.Controller 继承的

那它们之间是什么关系呢?

我很困惑....

最佳答案

  • Ember.Controller 是更简单的 Controller 类。如你所见in the Ember.Controller source code ,它只是一个带有目标(通常是路由器)和存储的对象,并继承 Ember.ControllerMixin

  • Ember.ObjectController 是一个 ObjectProxy,如您所见 in the ObjectController source code : 当它的内容被设置时,所有的 getters/setters 都被委托(delegate)给它的内容。因此,ObjectController 用于操作一项。

  • Ember.ArrayController 的行为类似于 ObjectController:它是一个代理,但对于数组,如您所见 in the ArrayController source code .因此 ArrayController 用于操作项目数组。

  • Ember.ControllerMixin 仅有几个处理 View {{outlets}} 的方法,正如您再次看到的 in the Ember.ControllerMixin source code (注意这里的代码重新打开了ControllerMixin)

你是对的,Ember.ArrayControllerEmber.ObjectController 不是从 Ember.Controller 继承的,但它们都扩展了上面描述的 Ember.ControllerMixin

我建议你阅读Advice on & Instruction in the Use Of Ember.js by Trek ,本文并不是专门介绍 Controller ,但您会学到很多东西,并了解它们的工作原理(例如 socket )。

关于javascript - Em.Controller 在 Ember.js 中的作用是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12740510/

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