有没有办法将透明度和“ajax可用性”与HTML模板结合起来

时间:2009-07-06 07:07:23

标签: html templates

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

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

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

所以我回到了为组成页面的对象使用较小模板的想法,但我想知道是否有一些简单的方法来获得我的蛋糕并且通过一个模板显示整个模板来吃它页面,还有页面上较小对象的迷你模板。

修改

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

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

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

2 个答案:

答案 0 :(得分:0)

  • 您没有使用javascript解释您添加的对象和列表对象的问题。应该没有理由不能使用javascript将对象添加到完整文档。您只需要找到(或添加)HTML的正确句柄,这样您就可以这样做(类,ID,甚至是注释块,具体取决于具体情况......)。

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

  • 也许你需要编写一个小的测试框架,它允许你的布局设计师在给定固定的数据输入集的情况下查看整个模板。例如,给定数据集A,完整模板将是A *,给定数据集B,完整模板将是B *。也就是说,让渲染器渲染模板化HTML而不是真实HTML。

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

答案 1 :(得分:0)

好的,据我所知,你的问题是,你的HTML页面模板上有部分(例如列表)与你输出AJAX请求对象的HTML完全相同的源代码而你没有想要保持两次。

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