【问题标题】:Is there any way to combine transparency and "ajax usability" with HTML templates有没有办法将透明度和“ajax 可用性”与 HTML 模板结合起来
【发布时间】:2010-08-04 12:17:15
【问题描述】:

我在 PHP 中使用 HTML_Template_Flexy,但这个问题应该适用于任何语言或模板库。我正在输出一个相对复杂的对象列表。

一开始我只是遍历了一个对象列表并在它们上调用了一个 toHtml 方法。当我要让我的布局设计师查看模板时,我注意到它太不透明了,他最终会查看和/或编辑许多额外的 php 源文件以查看 toHtml 方法真正生成的内容。

因此,我将 php 类中的大部分 HTML 字符串提取到模板中,该模板生成了一个清晰的文件,您可以在其中一次看到整个页面结构。但是,当您想使用 javascript 将对象添加到列表中时,这会导致问题。然后我必须保留旧的 toHtml 方法并同时维护主模板和 html 字符串,这样我就可以只输出应该添加到页面中的新对象的 HTML。

所以我又回到了为构成页面的对象使用较小模板的想法,但我想知道是否有一些简单的方法可以让我的蛋糕也能通过一个模板来显示整个内容页面以及页面上较小对象的迷你模板。

编辑:

是的,更新页面根本不是问题。我关心的是模板文件的可维护性和透明度。

如果我有一个用于整个页面的模板,那么我必须维护页面上显示的对象的迷你模板。

如果我只有迷你模板并从更高级别的模板中包含它们,那么查看顶级 html 并想象最终结果会是什么样子会变得更加困难。

【问题讨论】:

    标签: html templates


    【解决方案1】:
    • 您没有解释您使用 javascript 添加和反对列表的问题。您应该没有理由不能使用 javascript 将对象添加到完整文档中。您只需要找到(或添加)HTML 的正确句柄,以便您可以执行此操作(类、ID 甚至注释块,具体取决于具体情况......)。

    但是,这并不能解决可维护性问题。我假设您需要小模板,因为它们更易于维护。

    • 也许您需要编写一个小型测试框架,允许您的布局设计人员查看给定固定数据输入集的整个模板。例如,给定数据集 A,完整模板将为 A*,给定数据集 B,完整模板将为 B*。也就是说,让您的渲染器渲染模板化的 HTML 而不是真正的 HTML。

    也许这是过度设计您的问题,但您可能需要澄清问题。

    【讨论】:

      【解决方案2】:

      好吧,据我了解,您的问题是,您的 HTML 页面模板上有部分(例如列表)与您为 AJAX 请求输出对象的 HTML 具有完全相同的源代码,而您没有想要维护它们两次。

      那你为什么不只用 AJAX 查询你的对象(我最喜欢的实际上是 JavaScript 客户端的 template your view,但这只是个人喜好)?这意味着,您只需要在 PHP 中模板化您的作品,并仅通过 JavaScript 中的 AJAX 请求将它们组合起来。

      【讨论】:

      • 我也考虑过这种方法。但是,在页面加载时,我的应用程序已经必须遍历应用程序数据库中的大部分数据,才能获取依赖于“低级”对象的“高级”对象的某些属性的值。所以我想,既然我已经得到了所有这些数据,我不妨将它们全部输出给客户端。
      • 好吧,这是有道理的,但为什么不将数据生成为 JavaScript 对象(直接在页面上输出)并在客户端呈现 HTML?另一种选择是将您的大模板分成几部分(在 PHP 中),您只需将其包含到您的大模板中或直接在 AJAX 请求上呈现。所以你仍然只需要维护一次
      猜你喜欢
      • 2011-08-24
      • 2015-04-05
      • 2013-12-28
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2013-09-15
      • 2017-12-14
      • 2021-11-03
      相关资源
      最近更新 更多