【问题标题】:Does Volt(Phalcon) has something like request.ajax extends like Twig?Volt(Phalcon) 是否有类似 request.ajax 的类似 Twig 的扩展?
【发布时间】:2014-04-29 18:47:43
【问题描述】:

我想在 Volt 视图上检测,如果使用 ajax 请求,从其他模板扩展,这可能吗?

{% extends request.ajax ? "base_ajax.html" : "base.html" %}

谢谢你的帮助... :)

【问题讨论】:

    标签: twig template-engine phalcon volt


    【解决方案1】:

    更接近的解决方案是使用局部,会改变渲染视图的逻辑,但这是实现它的唯一方法......

    {{ request.isAjax()?partial("base/base-ajax") :partial("base/base-default") }}
    

    感谢您的帮助! :)

    【讨论】:

      【解决方案2】:

      是的,DI container 中的所有内容都可以在 Volt 模板 (source) 中使用。 request service 默认在您的 DI 中,也可以在 Volt 中使用:

      {% set baseFile = request.isAjax() ? "base_ajax.volt" : "base.volt" %}
      {% extends baseFile %}
      

      您可以查看this list 以查看 DI 容器中默认可用的所有服务。

      【讨论】:

      • 感谢@cvsguimaraes 的帮助,但这会导致错误:“...**致命错误:未捕获的异常 'Phalcon\Mvc\View\Exception' 带有消息'语法错误,意外令牌 IDENTIFIER(request ) in**...",唯一可行的方法是:{% if request.isAjax() %}..... {% else %}....
      • 感谢您的帮助..!,但是“...致命错误:未捕获的异常 'Phalcon\Mvc\View\Exception' 并带有消息'语法错误,意外令牌 IDENTIFIER(baseFile) in... ",我将使用这种方式: ({% if request.isAjax() %}..... {% else %}....) ,希望 volt 在下次更新中添加此功能....谢谢!
      • @user2976753 是的,extends 似乎不支持字符串变量。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      • 1970-01-01
      • 2023-02-21
      相关资源
      最近更新 更多