代码之家  ›  专栏  ›  技术社区  ›  Sam

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

  •  0
  • Sam  · 技术社区  · 15 年前

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

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

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

    所以我又回到了使用较小的模板来制作页面对象的想法,但我想知道是否有一种简单的方法来制作蛋糕,并通过使用一个模板来显示整个页面,同时也显示页面上较小对象的小模板来吃蛋糕。

    编辑:

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

    如果整个页面只有一个模板,则必须维护页面上显示的对象的小模板。

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

    2 回复  |  直到 14 年前
        1
  •  0
  •   Glenn    15 年前
    • 您没有用javascript解释添加和对象到列表中的问题。没有理由不能使用javascript将对象添加到完整的文档中。你只需要找到(或添加)HTML的正确句柄,这样你就可以做到(类,ID,甚至根据情况的评论块…)。

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

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

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

        2
  •  0
  •   Daff    15 年前

    好吧,据我所知,您的问题是,您的html页面模板上有一些部分(例如列表),它们的源代码与您为ajax请求输出对象的html完全相同,您不想维护它们两次。

    为什么不直接使用ajax查询对象(我最喜欢的是 template your view 在客户端使用javascript,但这只是个人偏好吗?也就是说,您只需要在php中创建模板,并仅通过javascript中的ajax请求将它们组合起来。