问题标签 [presenter]

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 投票
2 回答
318 浏览

gwt - 带有选项 multiple=true 的 mvp4g LazyPresenter 被绑定两次

我在我的 gwt 项目中使用 mvp4g。对于我的一位演示者,我正在使用选项multiple=true,并且我正在以这种方式创建和绑定演示者:

ObjectPresenter 扩展了 LazyPresenter。

当我从eventBus被捕获的 中调用第一个事件时,再次调用的ObjectPresenter方法。bind()LazyPresenter

bind方法在树内有其他方法:createPresenter(); view.createView(); bindView();. 在我通过添加下一个小部件来修改我的视图的bindView方法中。ObjectPresenter因为该方法被调用了两次(一次由我直接调用,一次由框架调用)一些小部件被复制。

我已经调试了代码,我发现BaseEventHandler当调用来自的事件时,这部分代码eventBus被调用:

直接调用bind(通过mainObject.bind())绑定属性后BaseEventHandler未设置为true,因此bind在调用第一个事件时再次调用方法。

我可以在方法(直接调用)完成时从 to 设置变量,但binded我不确定这是否是正确的方法......BaseEventHandlertrueObjectPresenterbind

你能给我一个提示如何处理这个问题吗?

谢谢你的帮助。

0 投票
1 回答
333 浏览

ruby-on-rails - 如何将带有数组的json解析为带有集合的演示者?

我从外部服务JSON收到我的 current_user(通过电子邮件)的培训信息。

我想解析这个 JSON 并将其呈现在我的页面上。所以我想到了主持人。

所以现在我可以在我的视图中使用它:

我如何也可以解析 JSON 并将其转换为某个 Object 以便能够像这样使用它:

主持人上帝有办法处理吗?

0 投票
4 回答
11796 浏览

android - Android MVP - 应该避免在演示者中使用 R.string 引用吗?

为了将 Android SDK 与我的演示者类完全分离,我试图找出避免访问我们通常使用 R 的资源 ID 的最佳方法。我以为我可以创建一个接口来访问字符串资源之类的东西,但我仍然需要 ID 来引用字符串。如果我要做类似...

我仍然必须拥有LABEL_RES_ID然后将其映射到R.string.label我的资源桥中。这很酷,因为我可以在用其他东西进行单元测试时将其换掉,但我不想管理另一个到字符串值的映射。

如果我放弃并只使用 R.string 值,我的演示者将再次绑定到我的视图。这不理想吗?人们是否有更简单的解决方案来解决这个问题,以使他们远离演示者。我不想以 Android 提供的方式之外的方式管理字符串,因为我仍然想将它们放入布局文件并获得国际化等好处。我想做一个可以与这个演示者一起工作的愚蠢单元测试无需让 Android SDK 生成 R.java 文件。这要求太多了吗?

0 投票
0 回答
119 浏览

ruby-on-rails - 演示者类,在树模型图中

许多演示者都有以下形式

我想横向的实例:

这意味着创建多个演示对象,它们实际上只是开始复制模型。

更好地展示一个真实世界的例子

传入的主要对象是@user,但是,演示者并没有涵盖那么远。我可以创建@comments,但我希望代码更灵活,但前端工程师想要接受它。

其他人如何为演示者处理多个层次?

代码看起来像这样吗?(啊)

-丹尼尔

0 投票
2 回答
490 浏览

php - 在 Laravel 的数据透视表中对属性使用演示者

我只是想知道如何为数据透视表中的属性实现 Presenter 模式?例如,考虑这段代码(它只是一个例子,不是我实际代码的复制):

我可以将最终属性呈现方法放在哪里?请记住,我还希望能够使用这种关系的倒数。

非常感谢任何帮助

谢谢!

0 投票
2 回答
1478 浏览

html - Rails 从演示者方法渲染部分集合

我正忙着观看演示者的 Rail 演员表,并想重构我的一位演示者以包含页面模板。

我正在观看的截屏视频是287-presenters-from-scratch

我已经按照他建议的方式初始化了一个演示者,并在应用程序帮助文件中创建了一个帮助方法..

我试图与演示者一起构建的视图是一个通知模板,它与许多上传的页面共享。

由于您一次可以上传多个文件,我们可能会收到一些通知,或者每种通知中的几个。上传成功和完成上传的数据,而一些损坏的上传可能需要新的导入模板,其他有错误的上传可能需要修复。通过演示者的通知视图如下所示。

主持人举个例子

只有这个被呈现在页面上.. 它没有将其转换为可读的 html,而是作为一个已转换为字符串的数组?

呈现在页面上

我尝试调用return s.join,但这只是将数组内部的内容转换为字符串,但这会以相同的方式呈现减去数组符号。

然后如何从演示者呈现部分内容,以便它们在视图中显示为 html?

0 投票
0 回答
563 浏览

ruby-on-rails - 添加演示者后,我的控制器中出现未初始化的常量错误

我将此添加到我的控制器中:

然后将此演示者添加到 /app/presenters

在我看来:

但是,运行它时出现此错误:@report = Report.new行的未初始化常量 HtmlreportController::Report

如何对其进行初始化以使其将演示者中的功能识别到我的视图中?

0 投票
0 回答
1684 浏览

php - 在 Laravel 5 中使用演示者

我看过关于演示者的 Laracasts 视频,我想在我的项目中使用它们。

我有一个显示用户活动日志的页面。在 foreach 循环中,我显示“活动”模型。活动使用多态关系,所以根据活动类型我需要显示不同类型的内容。例如,用户可以发送电子邮件、添加任务、创建某些内容、删除某些内容等。

根据操作,我应该显示不同的图标,不同的内容本身(一些活动可能包含链接,一些可能包含其他内容)。

当我观看和阅读演示者的示例时,我意识到它们都非常简单,并且使用了诸如ucfirst日期格式之类的东西。但是,我应该在我的演示者中加入大量 HTML 逻辑吗?例如,由于我对不同的操作有不同的图标,所以我放置了大开关,它返回<i>带有适当图标类的标签。然后,当显示操作的描述时,我也会切换并返回一些 html,比如链接,甚至可能是<audio>标签。

另外,在演示者中使用 HTML 也不方便,但同时我想保持视图干净,这样我就可以输出$activity->presenter()->description而不是很多@if运算符。

演示者方法的示例:

0 投票
1 回答
591 浏览

ruby-on-rails - 在 Rails 查询中结合 Presenters 和 #includes

假设我的 Rails4 应用程序中有以下设置:

一个学生has_many学位,一个学生学位belongs_to。我也有对应于这两个模型的 StudentPresenter 和 DegreePresenter。(此处定义的演示者)

我想查询以下内容:

但我想访问 Student 和 Degree 的 Presenter 方法。

如何使用 Presenter 预加载数据?

导轨 4.1.5

0 投票
1 回答
1421 浏览

android - 模型视图演示者 - 相同的视图,不同的演示者

我正在使用 MVP 构建一个 Android 应用程序,我对这种模式有一个疑问。

假设我有一个用于创建新人的屏幕。此屏幕将显示一个EditText用于插入姓名、另一个用于姓氏、一个ImageView用于显示选择的照片图片等。这将导致一个View界面,由Fragment. 它将与一个Presenter接口合作,由另一个类实现。

美好的。

现在我有了另一个功能:用于编辑现有人员的屏幕。碰巧的是View,此功能与创建新人的功能相同。但是,Presenter情况不同。它将首先从数据库加载现有人员以使用当前数据预填充视图,并且单击“保存”时对数据库的操作将是更新而不是插入。

所以,我认为这是 MVP 的一个例子,其中一个 View 与 Presenter 的不同实现一起工作以实现不同的用例

  1. 你认为这是一个正确的假设,还是你认为不同的特性应该有不同的ViewPresenter接口?

  2. 另外,如果您使用 commonView和 different Presenters,那么实现View是通用的,还是会导致两个类实现相同的接口?在实践中,我看到了两种选择。

    • 只有一个Fragment实现View. 根据用户是要创建新人还是更新现有人,Fragment 应该接收并使用不同的 Presenter。

    • 有两个Fragments。每一个都会实例化一个不同的Presenter. 使用组合或继承来避免两个片段之间的代码复制。

在这些情况下,您认为怎样做比较好?

谢谢。