【发布时间】:2011-10-30 13:38:05
【问题描述】:
我使用 MVC PHP 框架来保持我的 Web 应用程序尽可能干燥。我所有的 HTML 模板都整齐地隐藏在我项目应用程序范围内的一个文件夹中。
问题在于,每当我使用 JSON 字符串通过 AJAX 构建页面时,我都需要重用这些模板中的很多行并将它们复制到我的 JavaScript 文件中的某个位置。这意味着我的 JavaScript 文件中的模板和我的 PHP 应用程序中的模板之间存在代码重复。
我想知道如何防止这种重复。一种方法当然是使用 AJAX 加载模板,但是我最终会收到一个页面的双重 AJAX 请求。此外,PHP 模板使用与 MooTools 不同的标记样式来表示变量,但 HTML 设置是相同的。
总结一下:是否有任何巧妙的方法或工具来防止模板重复,以便一个文件可以在 PHP 和 JavaScript 中使用?作为记录:我使用 MooTools 框架来构建我的 JavaScript 文件。
编辑
经过一番研究,我找到了我认为最好的答案。有兴趣的朋友:
PURE 将 HTML 表示和 JavaScript 逻辑完全分开,因此您不必费心在脚本中包含 HTML 元素。模板可以简单地在 HTML 文件本身中提供。
例子:
// JSON string
{ 'who': 'me' }
// In your rendered HTML page:
<div id="who"></div>
// After the JSON string is sent back
<div id="who">me</div>
此外,它可以被多种库使用:MooTools、jQuery、dojo、Prototype 等。
【问题讨论】:
-
你知道 mootools 支持
string.substitute(obj),其中字符串将包含对对象属性的引用,例如。"<div>{name}</div>".substitute(userobj)在字符串中返回 userobj.name 的值,这可以提供良好的模式重用。另外,看看mooml插件 -
我知道,但是替换不允许简单的
if或重复操作,并且使用 mooml 您仍然必须在 JavaScript 中提供模板,而是在对象中提供。
标签: php javascript json model-view-controller mootools