问题标签 [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.
c++ - 组合策略类 - 模板模板参数和可变参数模板
我想知道是否可以使用可变模板模板参数组合策略类,以便每个策略都可能有自己的模板包。似乎您只能在所有策略中共享一个模板包,但我希望情况并非如此。
以下似乎是可能的:
我希望每个政策都可以有自己的包,所以我可以做这样的事情(?):
每个策略都使用相同的对象类型,但第三个有一些进一步的模板。我知道上面的代码不正确 - 只是想说明我想要做什么。
谢谢
c++ - 访问从模板类派生的类中的基成员函数
我正在开发一个库,我设计了一个复杂的继承,其中包括模板类并从它们派生。我的问题是一个基模板类具有虚拟重载运算符,它接受 2 个参数并返回一些值。在基类中实现了这个操作符,大多数派生类没有重新实现这个操作符。
其他一些类将派生类用于某些工作并利用它们的操作员成员函数。只要派生类没有其他重载运算符,即使参数数量不同,一切都可以正常工作。如果这样做,则无法使用它访问基类运算符,object()
因为编译器找不到正确的成员函数(抱怨参数计数不匹配)。
是否指定了基类的默认模板参数并不重要。派生类的定义顺序也不会改变导致问题的运算符(它始终是SpecificDerived
类)。
下面我提出简化的问题。
[编辑] 示例已简化
基类定义:
派生类定义的用户:
派生类:
主功能:
编译器退出并声明存在no matching function for call to 'SpecificDerived2::memberFunc(float)'
来自gobble
函数的错误。仅当派生类或基类具有两个同名但参数不同的重载函数时,才会出现问题。
我正在使用支持 c++11 的 MinGW32 4.8.1。
django - Django模板继承:重复视图
我有一个名为 ListAEQ 的视图:
我想通过不同的模板多次使用此视图中的查询集。例如,我有一个扩展 aeq_list.html 的模板,它用不同的内容替换了父模板中的一个块。如何使用相同的视图但不同的模板呈现此内容,而不必创建具有相同查询集和不同 tempate_name 的多个视图。我相信有一种方法可以根据“DRY”原则做到这一点
例如,我将创建一个新视图
xml - XSL:每次调用特定模板时,首先调用更通用的模板
我有一个现有的 xslt 文件,我之前使用多个模板创建了该文件。
现在,需求发生了变化,现在在处理这些特定模板之一之前,我必须检查当前评估节点是否具有特定属性。
如果是,则必须先调用另一个模板,然后再调用特定模板。
所以基本上我的输入 XML 看起来像这样:
现在,解析 XML 文件,结果应该是这样的(实际上结果包含 FO 标记,因为我想通过 Apache FOP 创建 PDF,这只是为了简化我想做的事情):
好吧... XML 中有几个元素可以具有此属性“ specAttr
”,我不想更改每个现有的<xsl:template>
以检查此属性...
我尝试添加一个<xsl:template match="*">
完成该工作的对象,并希望在处理该元素的特定模板之前它会与每个元素匹配。但似乎这只适用于没有特定xsl:template
定义的节点。
我也已经在这里读到,可以创建与属性匹配的模板<xsl:template match="@specAttr">
,但只有在我添加<xsl:apply-templates select="@*"/>
. 所以我还必须更改每个已经存在的模板并添加这一行。
是否可以创建模板层次结构或模板之间的继承?总是在当前节点的实际模板之前处理父模板?
编辑:查看
reference
元素,您可以看到我有时还必须知道我必须在哪个位置处理新模板...如果 areference
具有此属性,我必须创建一个列跨度为 2 的完整新行(但有时在另一个表中也可能是 4),因为仅添加text
节点是不够的...考虑到这一点,我认为没有办法找到通用的方法来做到这一点......
还是有人有另一个聪明的主意?
如果您需要更多信息或有任何疑问,请随时提问。
提前致谢。
BRgrds,延斯
php - 如何在 twig 基本模板中设置基于会话的变量?
我想将 twig 插入需要在基础中包含一些基于会话的数据的应用程序中。例如,客户端的当前时区显示在页脚中。单个控制器知道这一点是没有意义的,因为这与他们无关;但另一方面,他们选择并填充视图:
在选择视图之前,是否有一些格式良好的方法可以将数据对象传递给 twig,并使其可用于基本模板?在启动 Twig_Environment 并将其传入时你会做什么?
django - django 模板继承-views.py 用于多个子模板
我正在尝试创建 base.html 并在基础上加载几个名为“nav.html”、“contents.html”和“footer.html”的子模板。我想让所有三个子模板都加载到 base.html 页面上,每当我访问 /base.html 时。
base.html:
导航.html:
内容.html:
页脚.html:
现在,我的 views.py 看起来像:
哪个不加载三个子模板中的任何一个,如果我加载其中一个子模板,例如
我无法加载其他两个子模板。我应该如何设置 views.py 文件,以便我可以通过仅加载 /base.html 来加载 base.html 上的所有三个子模板?(我认为没有位置问题。我认为我卡住的地方是如何正确设置“views.py”以获得预期的结果。)
django - 允许多个应用程序在 Django 中使用 {% extend base.html %} 而不会发生冲突?
我最近才开始使用 Django,并假设这个问题必须有一个好的解决方案!
通过 pip 安装 django-allauth 后,它尝试base.html
从我的project/templates
文件夹而不是它自己的子目录扩展。该用户遇到了同样的问题,并被告知重命名其中一个base.html
文件,然后在相关应用模板中更新对其的所有引用。对于复杂的应用程序(已经很糟糕),这很容易出错;如果多个第三方应用程序各自定义自己的应用程序base.html
并将其简称为{% extends 'base.html' %}
. 此外,我认为这仅适用于第三方应用程序,因为我可以轻松地将 base.html 命名为我自己的每个应用程序的不同名称,但我不想弄乱有效的第三方应用程序。
我的问题是:是否有一种安全/简单的方法可以让多个第三方应用程序使用{% extends 'base.html' %}
而不会发生冲突?
我已阅读 Django 中模板继承的文档并了解:
- 默认情况下,模板首先从文件系统加载,然后从应用子目录加载。因此
projects/templates
,在我的设置中定义的目录TEMPLATE_DIRS
将首先被调用;因此 django-allauth 问题。 - 我可以通过更改
TEMPLATE_LOADERS
. 但是,这只是意味着我的网站现在将扩展错误的base.html
.
尽管我可以通过重命名 allauth 的base.html
asallauthbase.html
并将子模板引用更改为 来修复当前的冲突{% extends 'allauthbase.html' %}
,但这似乎很笨重。
最奇怪的是,这个人抱怨每个应用程序默认扩展了自己的 base.html,但这似乎是不可能的......
php - 在 Phalcon Volt 中继承动态模板
我需要加载一个页面,该页面将被“插入”到模板中——当我阅读它时,Volt 的模板继承应该可以解决问题,它确实......有点。如示例中所示,硬编码值可以正常工作 - 以下示例有效:
以及继承模板的页面:
但是,同一页面可能需要继承不同的模板,并且必须在运行时决定,因此模板的名称必须动态生成。我想到了两个选择:
- 将模板名称设置为变量并在扩展时使用它 - 这里的问题是我没有看到之后使用它的方法。那家伙似乎也遇到了同样的问题,但既没有关于如何做的答案,也没有确认根本不可能。
注册另一个函数以生成完整的字符串(例如 {% extends "../../templates/de/index.volt" %})然后编译它,例如
$compiler->addFunction('get_template', function ($resolvedArgs, $exprArgs) use ($volt) { return $volt->getCompiler() ->compileString('{% extends "../../templates/de /index.volt" %}'); });
然后在页面中使用该功能,例如
但是,使用该方法不会解析页面内容(例如,未显示注册的 content() 函数返回的内容)。我也对其他解决方案持开放态度(对于性能问题,使用 Twig 而不是 Volt 只是最后的手段),关于我做错了什么的建议或关于该主题的有用文章的指针。提前致谢!
django - 在 Django 中继承模板
我能够渲染它home.html
并打印出来Mary had a little lamb
sitetitle
这是代码home.html
但它不会在 中渲染fun
块title.html
,尽管它位于同一目录中。
这是代码title.html
这是views.py
from django.shortcuts import render from models import siteprop from django.template import loader的代码
这是代码urls.py
javascript - Javascript 模块不可用模板不是从基本 Django 模板继承的
我有这个问题希望你知道如何解决它。在不是基本模板的“子”模板的 Django 模板中,我想使用基本模板中的 javascript 模块,即 Jquery。有没有办法在不再次加载我需要的所有 javascript 库的情况下实现这一点?
让我们说 base.html
some_component_base_template.html
用户可以通过插槽机制将这个 html 块插入模板中的任何位置,这就是为什么它不从 base.html 继承的原因,如果我创建另一个标题,每次加载这个 html 块时,javascripts 都会也被加载。