gpt4 book ai didi

javascript - Phalcon 中的占位符

转载 作者:行者123 更新时间:2023-12-03 11:41:14 25 4
gpt4 key购买 nike

我习惯了 ASP.NET MVC,我可以在 Razor View 中定义一个部分,如下所示:

@Html.RenderSection( "scripts" )

我通常将其放在布局 View 的底部。这样,我可以从我的 View 中添加脚本,如下所示,它们将包含在正文的底部,其中定义了脚本部分:

@section scripts {
<script>
(function () {
// do stuff...
}());
</script>
}

在 Phalcon 中,我可以将其放在布局 View 的底部:

$this->assets->outputJs();

然后我可以从我的 View 中添加脚本,如下所示:

$this->assets->addJs('js/whatever.js');

此方法的唯一缺点是此 View 的脚本必须位于单独的文件中,这意味着单独的请求。我希望能够像使用 Razor 一样将脚本直接添加到 View 中,并且仍然将其渲染在正文的底部。 Phalcon 允许你这样做吗?

最佳答案

是的,您可以使用Partials :

<?php $this->partial("partials/js/whatever") ?>

其中js/whateverviews/partials/js/whatever.phtml中的php模板文件。

您也可以使用Volt模板引擎并执行相同操作:

{{ partial('partials/js/whatever') }}

或使用包括:

{% include "partials/js/whatever" %}

在 Volt 中,您还可以使用 [Blocks][3],您可以在主模板文件中定义主要布局的部分(例如 footer),并且在每个 View 文件中您可以定义应该是什么放在那里。

{# templates/base.volt #}
<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
</head>
<body>
<div id="content">{% block content %}{% endblock %}</div>
<div id="footer">
{% block footer %}{% endblock %}
</div>
</body>
</html>

并且在 View 中:

{% extends "templates/base.volt" %}

{% block content %}
<h1>My page</h1>
{% endblock %}

{% block footer %}{{ partial('partials/js/whatever') }}{% endblock %}

正如我所写,这是针对 Phalcon 的 Volt 模板引擎,但如果您使用的是普通 PHP,那么我不知道类似的解决方案。您可以创建简单的服务,收集 Controller 中模板的链接,然后将它们作为主模板中的部分输出。

关于javascript - Phalcon 中的占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26263642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com