问题标签 [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.
ruby-on-rails - 使用 rails presenters - memoizable 在 3.1 中被弃用 - 使用 ||= 代替?
问题:尽可能避免创建多个对象或多个查询。
我使用带有 Rails 的 Presenters 作为最佳实践。
我遵循的建议说最好使用“扩展 ActiveSupport.Memoizable”(然后 memoize :method(s) 来使用它们)而不是设置具有@the_record = record ||= @record
样式的项目,因为有几个问题 - false 或 nil 没有得到存储以便再次调用查询,并且 memoizable 更好地使用缓存(即使用它!)。
但是我看到 memoizable 在 rails 3.1 Notes i github undercarrierwave 和声明中被弃用:“DEPRECATION WARNING: ActiveSupport::Memoizable 已被弃用,将在未来的版本中删除,只需使用 Ruby memoization 模式。(从extend at调用/Users/kain/.rvm/gems/ruby-1.9.3-preview1/bundler/gems/carrierwave-c4459179b0f8/lib/carrierwave/mount.rb:284”。
也许它已经解决了?有人知道吗?
关于未来使用的最佳实践有什么建议吗?使用 ||= 语法?以上问题怎么办?
gwt - GWT 与 MVP:如何在 2 个视图之间进行通信?
我在 GWT 中使用 MVP 模式。我开发了一个 GWT-TabPanel。每个 Tab 都有自己的 Presenter 和自己的视图。但现在我想在 ViewY 中使用来自 ViewX 的一些数据。
有没有一种简单的方法来实现它?
格雷茨
ruby-on-rails - Rails 如何为多态关联填充“model_type”字段?
我有一个活动模型。它belongs_to :parent, :polymorphic => true
。
Rails 是否使用parent.class.name
或parent.model_name
其他东西来填充 parent_type 字段?
我希望 Presenter 表现得像它包装的父对象,我需要重写正确的方法。
谢谢。
gwt - 如何在 GWT 的复合小部件中设置 Presenter
我有一个使用 MVP、clientFactory、活动、地点和 uiBinder 的 GWT 2.4 应用程序。我有一个复合小部件,我用它自己的 ui.xml 文件作为独立对象创建。我引用该类并将其插入到主 viewImpl.ui.xml 文件中。
复合小部件从后端接收一些数据,我需要将其返回到活动中,以便它可以显示在表格中。我正在使用与视图关联的演示者来访问活动。下面是代码: 在 View 界面中:
在我的活动中,我实现了 View.Presenter,如下所示:
所以活动是我在独立小部件和我使用的活动的启动方法中需要的演示者:
设置演示者并实例化它。我的问题是,在小部件中我需要这个:
但我不确定如何从小部件中引用实例化的 Presenter?
这个单独的小部件,实际上是一个 gwtUpload 小部件,是独立的。我对上传的一些数据进行服务器端计算,这就是返回给这个小部件的数据。
小部件数据需要返回到 Activity 以便将该数据传递回 NameViewImpl 类。
我认为演示者是这样做的正确方法,但由于小部件没有连接到视图或 viewImpl,我需要一种方法来获取小部件的演示者。
我知道 GIN 会使用 DI 来完成,或者我可能会创建另一个演示者。我从来没有用 GWT 设置过 GIN。关于正确方法的任何想法?
工作实施:
我不知道这是否是最好的实现,但根据 Thomas 的回答,我在 ViewImpl 类的 setPresenter() 方法中将我的小部件设置为 Presenter(activity) 的实例。它作为小部件返回活动的传递。我认为这就是 Thomas 作为回调接口的意思。
ruby-on-rails - 如何使用 Capybara Rspec Matchers 测试演示者?
我正在尝试使用 Capybara RSpec 匹配器测试演示者方法。
假设我有一个呈现按钮的方法。如果我不使用 capybara rspec 匹配器,这将是我要编写的测试:
使用 capybara rspec 匹配器,我想这样做:
这种方法是在这篇文章http://devblog.avdi.org/2011/09/06/making-a-mockery-of-tdd/中提出的。在文章中,作者是这样解释的:“我决定稍微改变一下我的规范设置,以便传入一个包含实际 Rails 标记助手的模板对象。然后我包括了 Capybara 规范匹配器,用于对 HTML 进行断言。”
但是,我不明白这一点。当 render_controls 只返回一个 content_tag 时,如何使用 capybara rspec 匹配器?
ruby-on-rails - Rails - 演示者中的 Helper Singleton 和 Rails Route Helpers
在我的 Presenter 类中尝试使用路由助手时,我似乎无法弄清楚为什么会出现 500 错误
在 /apps/presenters/base_presenter.rb /apps/presenters/object_presenter.rb 下有一个 Presenter 类
所以在我的对象演示器中,我为 as_json 执行以下操作。在我添加此网址之前,一切都有效。不知道为什么它不会访问 Rails 路线。
任何帮助将不胜感激,因为我很难过:)
c# - 使用 MVP 动态添加不同的视图
首先让我说这是我第一次尝试尝试 MVP。我将采用被动视图方法,因为我想将视图与模型完全分离。
我通过阅读以下文章了解了 MVP
德里克·格里尔
http://aspiringcraftsman.com/2007/08/25/interactive-application-architecture/
我的应用程序将有 4 个视图,它们是自定义控件,每个视图都实现不同的界面来与 Presenter 交互。现在这对于 3 个视图来说不是问题,因为控件是静态的并且永远不会改变。
我的问题出现在第 4 个视图中,我需要更改基于从视图 1 触发的事件显示的控件/视图。
例如,假设 View 1 是一个可以来自员工或客户的人员列表。现在,根据所选人员的不同,您可以根据所选人员的类型修改不同的参数。问题是 View 4 需要根据所选内容动态更改编辑控件。请记住,不仅属性会有所不同,而且它们的编辑方式也会有所不同。此外,每个编辑控件都会为属性更改触发不同的事件。
那么我的 Presenter 是如何知道如何管理与模型的交互的,当取决于选择的是员工还是客户时,会有一个不同的编辑器实现不同的 View 界面?
我希望这很清楚。任何帮助是极大的赞赏。我进行了全面搜索,所有示例都显示了 View 和 Presenter 之间的具体关系,而我的示例需要非常灵活。
我的目标是保持第 4 个视图上的编辑控件非常灵活,例如,我可以为外星人或狗添加编辑控件/视图,或者我可以添加到 View1 中的任何其他内容以供选择。
谢谢
java - GWT 模型视图展示器,重用展示器?或演示者 - 演示者沟通
这里是菜鸟。
我刚从 Ray Ryan 的 Google IO 演讲开始,并关注了 Google Developers 网站上的一些文章。我没有使用任何 GWT 附加组件,例如 GWTP 或 MVP4G 或 GIN 或任何其他东西。只是按照 GWT 网站上的联系人示例并尝试为我的案例建模。
我有一个DockLayout面板,它有一个标题、左侧的导航树和一个中央主面板。所有这些我都在一个实现DefaultPresenter的DefaultView中。
现在我有一个DialogBox,当用户在树中执行某些操作时会弹出它,这分别在DialogView和DialogPresenter中建模。
现在,当我隐藏DialogBox时,我最终会从AppController调用DefaultPresenter的一个新实例,这会创建一个新的 DefaultView并且我的所有树选择和主中央面板中的其他更改都消失了。
- 是否可以重复使用演示者的实例而无需在历史更改上创建新的实例?(例如,在我的情况下为DefaultPresenter )
- MVP 模式中有没有一种方法可以在具有持久值的演示者之间传递控件?
- 如何在事件触发时在应用控制器内加载演示者的现有实例?
还是我把整个 MVP 架构弄错了?我现在计划为我的每个组件设置不同的演示者和视图,比如HeaderPresenter / HeaderView、TreePresenter / TreeView 、 MainContentPresenter/MainContentView?所以我只会创建我需要的演示者的新实例(如MainContentPresenter)并保留现有的照原样(如TreePresenter 和 HeaderPresenter)这能解决我的问题吗?我将如何在浏览器窗口中拼接所有这些不同的视图?我没有使用 UiBIinder,只是坚持基础。
各位高手帮帮我,我陷入了僵局!
ruby-on-rails - Apotomo 替代品
我正在工作的项目主页上的信息一直在堆积,现在我们正在寻找一些东西来创建类似仪表板的界面。
这就是我找到 Apotomo 的方式,但我想知道有哪些值得研究的替代方案。
到目前为止,我已经浏览了ruby-toolbox 上的 Rails Presenters。
感谢您提出任何加快开发速度的建议。
wpf - 如果 ItemsPresenter 是第一项,则触发
我创建了一个新模板。如果 ItemsPresenter 是第一个元素,我希望它不会显示。我会用触发器解决这个问题。但我不知道我指定的条件是什么?