问题标签 [view-inheritance]

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 投票
1 回答
521 浏览

ruby-on-rails - 使用 Rails 3 视图继承,是否可以在子视图中调用“super”,但发送父变量?

我的应用程序中的每个show操作对每个模型都有相同的模板(它是一个管理员门户类型的界面)。我show.html.erb认为所有这些模型都继承了。

控制器都使用 InheritedResources,因此我可以访问一些辅助变量,例如resource,我用它来显示resource.attributes在我的父视图中显示的模型的属性。

我想做的是将每个模型中显示的属性列入白名单。我想到了两种方法来做到这一点......第一种是在我的模型继承的类中定义一些方法,比如说它被调用attr_visible并定义模型中的每个属性。我不喜欢这种方法的原因是它在模型中放置了太多的视图逻辑。我宁愿将我的视图与模型一起提供,并让视图确定显示的内容。

第二种方法就是这个问题的意义所在。我想要一个文件/app/views/users/show.html.erb,并为我想显示的用户设置哪些属性,比如:

然后将它们传递给我在这个问题开头描述的父视图。然后,该视图将能够循环@attributes并显示必要的属性。

super是否可以从视图中使用“ ”类型的方法?我读过的关于视图继承的所有内容都表明视图是根据它在目录结构中的位置加载的,然后你就不走运了。

编辑:我已经做了我想做的事。我在 /app/views/users 目录中定义了部分 _show.html.erb,如下所示:

然后在父视图中我<%= render "show" %>在循环之前调用@attributes. 这行得通,但感觉很笨拙,因为我在调用时实际上并没有渲染任何东西render。有没有更好的办法?

0 投票
1 回答
50 浏览

ruby-on-rails - 用于管理员的 Rails 3 特定控制器呈现默认的“显示”视图

这是我的问题,我正在尝试按照这个很好的教程在我的应用程序中实现一个单独的管理层:http: //iain.nl/backends-in-rails-3-1

一切都很顺利,但在views/backend/items/index.html.erb中,有一个共同点:

我得到了默认的应用程序视图:views/items/show 而不是 backend/views/items/show

对索引页面的调用是从 backend/items_controller 进行的,但似乎 Rails 3 视图继承正在跳过链中的第一部分。

任何的想法?

谢谢!

0 投票
2 回答
497 浏览

wpf - WPF MVVM 视图/用户控件继承或类似概念?

我正在构建一个 WPF 应用程序并将 caliburn.micro 用于 MVVM。我有几十个视图(用户控件)。

视图具有页眉正文和页脚。如下图所示,header 包含两个用于 crud 操作的按钮,footer 包含一个状态栏。

示例视图

所有视图的页眉和页脚部分都相同,但不同视图的正文内容会有所不同。目前,我正在为每个视图的标题和正文重复代码,现在我正在尝试消除重复代码。

为了实现这一点,我正在考虑制作一个通用的基本视图,以便与所有其他视图共享。

当前实施

试图实现类似的东西

基础视图

子视图

可能是我的方法是错误的(我对 WPF 有点陌生)。

我的目标是通过将一些控件继承到视图中来消除重复代码。

如何将基本视图与子视图结合起来?谁能建议我达到我的要求?提供一些代码示例将不胜感激。