1

Enyo 2.3pre 中内置了一个新的 MVC 机制,但现在绝对有文档。

问题是如何将特定控制器绑定到我的视图?

我有一个基于 enyo.Control 的新种类,例如,我有一个基于种类的控制器:'enyo.ViewController',

在我的控制器中,我有一个带有应该处理事件的函数的处理程序对象。

如果我将视图道具放入控制器中,并且我的视图名称不起作用,因为控制器中的处理程序没有被调用

你能在这方面发布一些例子吗?

4

2 回答 2

5

因此,默认情况下,enyo.ViewController 想要渲染到 document.body,我们使用它来定义 enyo.Application 类型作为应用程序的“起点”。

Enyo 实现不一定是“纯”MVC,因为您不必为您正在处理的每个视图(或 enyo.Control)都有一个适当的控制器。Enyo 一直将一种混合视图/控制器系统嵌入到控件本身中。

话虽如此,最近对实现的更改消除了将事件冒泡到拥有您的“视图”的“控制器”,因为它导致了很多不必要的开销。事实上,我们正在从 enyo.Application 类型中删除“控制器”块作为对各种控制器的应用程序全局引用,而是将它们放置在组件块中,作为“传统”Enyo 开发的典型。

因此,当前的想法是您的视图将像以前一样处理事件,但您可以绑定到各种“控制器”和模型的属性。

现在,如果你真的想要,你仍然可以创建 MVC 架构,但系统足够灵活,可以支持任何“关注点分离”方法(MVC、MVP、MVVM 等)

我目前的处理方式是创建一个“控制器”来做一些事情(比如发出 Web 服务请求),然后根据我返回的数据构建模型,将它们添加到集合中,然后我的视图可能会有一个数据感知控件(例如 enyo.DataRepeater 或 enyo.DataList)将为每个模型自动生成一些行。

看看这个简单的例子: http: //github.com/clinuz/college-football 但是,请注意它可能不是最新的,从应用程序范围的控制器切换到组件。此外,我们正在删除 DataRepeater/List 的“控制器”属性,它将更改为“集合”。

如果您需要更多提示,请告诉我。我们知道,在我们最终确定实施时,缺乏文档使这变得困难。请多多包涵!

于 2013-10-28T22:02:15.557 回答
2

你可以看到我的例子来检查 enyo MVC 结构。 https://github.com/prajnavantha/enyo-internetradio

基本上我们有一个模型、视图和控制器。模型:在我的例子中是一个简单的 enyo.Model 类型。你可以有 enyo.collections 等... 控制器:我用过 enyo.ModelController。浏览次数:有种类:

该应用程序不完全是 MVC。由于我的逻辑仍在观点中。但是您可以理解,如何设置模型和使用组件。

于 2014-01-27T09:44:25.270 回答