问题标签 [template-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 回答
286 浏览

ruby-on-rails-3 - 模板继承的视图覆盖在 Rails3 中不起作用

我正在尝试在 Rails 3 中使用模板继承。我的 application_controller.rb 中有以下代码:

这确实正确地将布局设置为与特定俱乐部关联的布局(在本例中称为“layout1”),但是当我尝试通过创建以下文件夹结构来覆盖视图时:

它捕获views/home/index.html而不是views/layout1/home/index.html.erb

当我按如下方式打印视图路径时:

它将正确的views/layout1打印为第一个,但仍然找不到正确的index.html.erb文件的内容。

在位于 layouts 文件夹中的layout1.html.erb中,我只说产量。

我是否以某种方式误解了这个概念?

0 投票
5 回答
143 浏览

python - Django:如何将相同的功能扩展到多个视图?

我有一个在网站的许多部分使用的父模板,称为base.html. 该模板包含许多功能组件,例如触发不同表单的按钮(在模式窗口内)允许用户上传不同类型的内容等。我希望用户能够从站点的几乎任何部分单击这些按钮(来自所有继承自base.html) 的模板。

我编写了一个处理站点主页的视图HomeView(它呈现homepage.html,它继承自base.html)。我在这个视图中写了一堆功能,它处理所有的上传。

由于许多模板将继承自base.html,因此具有所有相同的功能,我是否必须将数百行代码从 复制并粘贴HomeView到呈现所有其他页面的视图中?

一定有更好的方法,对吧?

如何确保父基础模板中的功能对于调用从该基础模板继承的子模板的所有视图都适用?

0 投票
1 回答
896 浏览

node.js - 有没有nodejs模板引擎支持像PHP Smarty这样的模板继承功能?

有没有nodejs模板引擎支持像PHP Smarty这样的模板继承功能?

0 投票
2 回答
4803 浏览

symfony - 在 Twig 模板上包含然后阻止

之前的问题似乎都没有任何信息,大约一天半的随机谷歌搜索结果一无所获。

我想要做的是,我有一个 base.html.twig 模板,然后是一个包含几个 ui 元素(幻灯片、导航菜单等)的文件夹。我应该能够做到这一点的想法:

page.html.twig 包含

features.html.twig 包含

问题是这将呈现如下:

问题是我如何使这个输出如下:

0 投票
1 回答
649 浏览

ruby-on-rails - 使用带有模板继承的俄罗斯娃娃缓存的问题

我一直在一个相当复杂的 Rails 应用程序的选定部分中相互独立地使用模板继承和俄罗斯娃娃缓存(使用cache_digests gem ),并取得了很大的成功。

我很难以一种理智的方式一起使用这两种技术,这让我怀疑我可能做错了什么......

举一个非常简单的例子,考虑一个由两个控制器组成的应用程序,ThingOnes 和 ThingTwos。这个应用程序有一个布局 ( layouts/application.html.erb),它简单地呈现一个头文件:<%= render 'header' %>.

默认情况下,Rails 会在一堆位置中查找这个部分,包括布局的视图目录 ( views/application/_header.html.erb) 以及任何特定于当前控制器的位置 (likeviews/thing_ones/_header.html.erbviews/thing_twos/_header.html.erb)。这意味着,出于缓存目的,我基本上有一个模板依赖列表(不包括引擎或其他任何东西),如下所示:

现在,我们用缓存包装该渲染调用,如下所示:

不幸的是,运行rake cache_digests:nested_dependencies TEMPLATE=layouts/application会导致以下依赖项列表。

它似乎根本不关心模板继承。修改未包含在列表中的文件具有修改未包含在列表中的文件的预期效果 - 缓存未正确过期并显示过时的标头。

这可以通过指定相关的模板路径来轻松解决,如下所示:

这看起来确实是一个非常糟糕的解决方案,因为它不会很好地增长,并且需要大量琐碎的装饰来缓存调用以保留现有的模板继承行为。

类似地,可以更明确地指定标头位置,如下所示:

这也无法保留现有的模板继承行为,使其不适合我们的需求。

最后一个选择是将cache调用移动到标头部分本身。这不仅效率低下,因为它将render调用排除在缓存之外。它也比 DRY 更 WET(将所有内容写两次),这是一个很大的关闭。

所以,要解决我的实际问题......我这样做是否正确?这似乎是一个相当大的缺点,会影响各种各样的实现,但我真的找不到很多与这个特定问题相关的讨论,所以我想知道其他人是否以一种更好的方式来做这件事。有没有更好的方法来做到这一点,或者至少自动为部分渲染指定整个模板依赖层次结构?

0 投票
2 回答
208 浏览

c++11 - 执行从非模板基类到具有可变模板参数(c++)的模板派生类的静态转换

我想存储一个函数指针向量,每个指针取不同的编号。类“存储”中的参数。因此,编写了一个模板类“Func”,它将函数存储为 std::function 并将其参数存储在一个元组中。

我从非模板基类“IFunc”派生了这个“Func”类,这样我就可以在“Store”类中存储指向这个基类的指针向量。

IFunc 类:

商店类:

我想遍历向量并调用每个函数。为此,我需要像这样进行静态转换:

当我尝试这样做时,演员表不会正确发生。我无法指定模板参数(可变参数),因为此类(存储)不知道它们。

我完全被困在这个地方。我猜我的设计有问题。有人可以建议我一个更好的方法来做到这一点。谢谢你。

0 投票
1 回答
9487 浏览

php - Laravel 4 - 多次扩展主模板中声明的部分

我有一个场景,我有一个定义标题部分的主模板。看起来像这样...

如您所见,我有几个子视图(例如 nav_bar 和 search_bar)。这些子视图中的每一个都有一个随附的 .js 文件。所以我想像这样扩展 nav_bar 中的“标题”部分......

然后在 search_bar 中再次像这样:

目的是最终输出的 html 文件如下所示:

@section('header') {{ HTML::style('css/planesaleing.css') }} {{ HTML::script('js/jquery-1.10.1.js') }} {{ HTML::脚本('js/search_Bar.js') }} {{ HTML::script('js/anotherjs.js') }} {{ HTML::script('js/yetanotherjs.js') }} @show

然而,只有第一个实际上扩展了标题,之后的所有其他似乎都被忽略了。反正有使用多个扩展吗?

任何建议 - 非常感谢。

0 投票
2 回答
551 浏览

block - 在 Jade 中,如何在 mixin 中输出“extends”块的内容?

如何在 mixin 中输出扩展块的内容?

这是一个简化的例子:

mixins.jade

布局.jade

somepage.jade

在这里我想实现:

但目前我得到的是:

0 投票
1 回答
3655 浏览

ajax - Symfony2 - 如何实现部分/完整模板以在树枝中加载 AJAX 内容?

在我的 Symfony2/twig webapp 中,我有一个 twig 模板,它只包含一个<div id="#container">...</div>,没有<html></html>包装。我将它用于 ajax 调用,我将它嵌入到我的页面布局中。我们称之为布局ajax_template.html.twig

现在我有另一个模板,它将扩展ajax_template.html.twig. 但是这个页面不是通过ajax调用的,而是直接调用的。所以它也应该扩展 my base_layout.html.twig,其中包括所有<html></html>包装。应该是这样的:

已经尝试了几种方法,例如include()use()在我的树枝模板中。我还检查了当前路径是否是 ajax 调用:

但我的方法都不起作用。你有什么想法?

0 投票
2 回答
496 浏览

python - Django block.super 不渲染父模板中设置的变量

我有以下情况:

2 意见:

视图1:

视图2:

2个模板:

模板1.html

模板2.html

Template1.html 的所需输出:

Template1.html 的实际输出:

Template2.html 的所需输出:

实际输出:

为什么调用 {{block.super}} 时没有输出 'var1' 的值?

我在我的 settings.py 中定义了“django.core.context_processors.request”。我错过了什么?