问题标签 [presentation-model]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
116 浏览

actionscript-3 - PresentationModel - 命令反馈

据我了解,我使用带有 PresentationModel-Pattern 的 Cairngorm 2.2(PresentationModel 保存视图逻辑并调度 CairngormEvents 以触发命令)。

什么是获得有关命令结果(结果和故障)的反馈的正确解决方案。例如 PresentationModel 下一个动作取决于服务器响应状态码。

我是否必须收听修改后的模型事件(模型由命令修改)?

或者我应该将委托响应者转发给 PresentationModel?

谢谢你的帮助。马库斯

0 投票
1 回答
438 浏览

apache-flex - Flex Cairngorm 3 表示模型初始化

好的,所以我打开了一个 TitleWindow……我定义了 6 个状态。我对所有视图都使用了演示模型模式。我发现了一个令人沮丧的细微差别。当我告诉我的窗口进入 XXX 状态时,控件必须初始化,因为 flex 中的状态使用延迟加载。所以......我的 PM 代码说 myTextArea.text 爆炸并说“无法访问......”所以作为一种解决方法,我在我的控件上创建了一些 creationComplete 事件以向 PM 注册控件。因此,当状态发生变化时,textarea 最终会初始化,并在 creationComplete 调用 PM.registerTextArea() 设置对它的引用。然后在那个函数中我运行我的代码...... myTextArea.text.. 等等。

这似乎是一个丑陋的黑客,我讨厌它。有没有办法等到整个状态在创建然后在 PM 上调用代码?我已经尝试过 enterstate ......但这个事件似乎在状态控件准备好之前触发。

我试图添加评论,但我想编辑是我能做到这一点的唯一方法......

致大家:感谢您的反馈。我正在做一些有点偏离直接 PM 的事情。每个视图都有一个 viewController(我这样称呼它们)。它有点像我自己的委托/数据提供者的混合体。但这没有实际意义。在处理状态时,最痛苦的是弹性组件的生命周期。如果您更改状态.. 没有任何事件可以说“我在此状态下的所有组件都准备好了”。唯一说“我们改变了状态”的事件。所以我在状态变化时触发的代码正试图与尚未准备好的组件对话。所以从我所见,似乎没有设计模式或完美的方法来确保所有组件都在一个状态下创建,除非在该状态下的每个组件上使用 creationComplete 来注册它已经准备好......如果你不这样做,你获得比赛条件。无论是框架还是设计模式,

textarea 是一个简单的 PM 修复.. 只需将其绑定到 pm 值。但有些时候我不能。

具体来说,一旦我达到那种状态,我就会尝试将视频附加到显示器上。这是通过 addchild 完成的。无论我在哪里做.. 在调用 addchild 之前,我需要知道 videoDisplay 已完成加载。我什至尝试了 currentStateChange 事件,因为文档说最后触发......但是唉......状态中的组件仍在初始化。因此,creationComplete 似乎是我唯一的选择。也许保持代码干净的唯一明智的方法是在进入状态后使用 as 创建整个事物(视频显示和视频)。我只是希望 flex 框架有事件来帮助我,而不是在运行中构建所有东西。

0 投票
2 回答
675 浏览

apache-flex - 使用 View-Model 模式进行 Flex 数据绑定

我正在尝试在 Flex 应用程序中使用 View/Model/View-Model 或 Presentation Model 模式,因为这绝对是一种“正确”的做事方式。不过,我有一个关于 Flex 数据绑定应该如何工作的问题。

假设我有一个Project包含可绑定名称字段的模型类。我想制作一份报告以显示有关该项目的信息。报告的标题应为[项目名称]摘要。我想创建一个 View-Model 类来为报告提供支持。此类SummaryViewModel将有一个title字段来提供报告标题。

在我的报告 mxml 中,我会将标题标签绑定到summaryModel.title,但是title需要以某种方式绑定到,projectModel.name因此如果在程序的另一部分更改名称,报告标题也会更新。

在 Flex 中完成这种“两级”数据绑定的正确方法是什么?我应该以不同的方式做事吗?

0 投票
1 回答
275 浏览

mapping - 如何一般地将域模型映射到表示模型?

我试图弄清楚如何将域模型一般地映射到表示模型。例如,给定以下简单的对象和接口...

我希望能够编写这样的代码......

...其中“MapperObject”可以使用反射、基于约定的映射等自动确定映射两个对象的属性以及映射的对象类型。所以,我可以很容易地尝试使用相同的 MapperObject 映射 UserPresentationModel 和 User 等对象。

这可能吗?如果是这样,怎么做?

编辑:为清楚起见,这里是我当前使用的非泛型 MapperObject 的示例:

我仍在尝试解决如何使其与 List 一起使用,而不仅仅是单个产品,但这是一个不同的主题 :)

0 投票
2 回答
2892 浏览

apache-flex - 使用演示模型模式的 Flex 4 的 Parsley 依赖注入问题

我有一个视图类 EmployeeList 如下:

PM 看起来像这样:

无论我是使用还是自动装配来执行注入,当我运行它时,我都会收到以下错误消息:

TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 cafeparsley.view::EmployeeList/_EmployeeList_List1_i()[C:\dev\code\workspace\Examples\CafeParsley\src\cafeparsley\view\EmployeeList.mxml:29] 在 cafeparsley.view::EmployeeList/_EmployeeList_Array2_c() 在 mx .core::DeferredInstanceFromFunction/getInstance()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\DeferredInstanceFromFunction.as:105] 在 spark.components::SkinnableContainer/createDeferredContent()[E :\dev\4.x\frameworks\projects\spark\src\spark\components\SkinnableContainer.as:985] 在 spark.components::SkinnableContainer/createContentIfNeeded()[E:\dev\4.x\frameworks\projects \spark\src\spark\components\SkinnableContainer.as:1014] 在 spark.components::SkinnableContainer/createChildren()[E:\dev\4.

所以当错误被抛出时,employeeListPM 为空。但是,如果我注释掉 <s:List>组件,重新运行并在 init 方法中设置断点,init() 将被调用。所以不是我的上下文配置错了,只是PM没有及时注入,报错了。但是根据 Parsley 手册,如果我使用自动装配或<parsley:configure/>PM 应该在需要的时候注入。

在我认为是相对微不足道的依赖注入场景中,我看不出我做错了什么。你能帮我吗?

0 投票
2 回答
1855 浏览

silverlight - 如何将实体和实体集合放入 Silverlight 中的 DTO - WCF RIA?

我想做一个包含实体的 DTO。我该怎么做?是否可以?

例如,我的服务器项目中有这样的东西:

但在客户端只生成基本类型,而不是集合和 MyEntity2 类型属性。

我的目标是将几个不同的实体封装到一个 DTO 中,而不是通过多个异步查询来收集它们......

或者有哪些不同的解决方案可能适合这种情况?我是否缺少某些东西(某些属性)或者它只是不受支持?

0 投票
2 回答
602 浏览

silverlight - 使用表示模型使用 wcf ria 服务将 rss 数据插入数据库

我已经阅读了很多帖子,但找不到我的答案。我的问题有点具体。在我的 silverlight 项目中,我想从雅虎天气中获取天气数据,如温度、状态和日期,并通过从其 rss 更改将其保存到我的数据库中.so 使用 webclient 及其 DownloadStringAsync 和 DownloadStringCompleted 来获取数据。我还在服务器的模型文件夹中创建了一个演示模型(因为我想在我的服务中使用它)所以在我的 DownloadStringCompleted 事件处理程序中我做了这样的事情:

这是在我的视图模型中,我测试了它所有的作品。我可以获取数据,也可以在数据网格或列表框中查看结果。现在我想将数据保存在我的数据库中。我希望它自动完成,而不是通过按钮或命令。例如,我希望它始终读取数据并每 5 分钟将其保存到数据库中。所以我创建了我的服务我创建了一个自定义插入,我可以自己塑造它:

和我的获取数据:

现在我不知道如何强制它保存数据。我在我的 iewmodel 中写了这个但没有工作:

我不知道如何强制插入方法起作用。有人请告诉我我错在哪里?我知道在某个地方。告诉我路。最好的祝福

0 投票
1 回答
76 浏览

ios - 这种 View Presentation Style 的名称是什么?

在此处输入图像描述

这种视图的名称是什么,如何实现它?

0 投票
2 回答
174 浏览

actionscript-3 - 带有演示模型的 Flex

如何从演示模型中控制 videodisplay.stop、pause()、close 等视频显示功能?但我需要从演示模型中控制它。自定义事件不是我的选择,因为这很昂贵。

0 投票
1 回答
249 浏览

model-view-controller - 是否可以将 Presentation Model Pattern 用于具有 EMF 域模型的基于 GEF 的 RCP 应用程序?

我正在开发一个 Eclipse RCP 应用程序,使用基于 EMF 的第三方域模型和 GEF 编辑器进行编辑。

GEF使用 MVC 模式,如果我不必使用特定布局在编辑器视图上绘制模型图,这将是公平的。我正在使用的域模型不包含任何视觉信息(这本身就是一个好主意),但我希望能够Figure在他们EditPart的 s 中为 s 分配坐标。这将使我更容易计算图形在布局中的位置。

现在我偶然发现了 Martin Fowler 的Presentation Model Pattern,这似乎正是我正在寻找的东西。我还找到了一个关于 RCP UI 测试(仅限德语​​)的老式教程,它在 Eclipse RCP 上下文中使用了这种模式。

现在我想知道:看到 GEF 明确使用 MVC,通常是否可以在 GEF 上下文中使用 PM?MVVM 是替代方案吗?

请注意,出于多种原因,我无法使用 GMF。

非常感谢!