【问题标题】:jQuery Template - Reverse TemplatingjQuery 模板 - 反向模板
【发布时间】:2011-04-30 05:43:44
【问题描述】:


所以我正在开发一个内置模板功能的文档系统。在一个页面上,您将使用 jQuery 模板标记创建带有“标签”的模板:

${RestaurantName}
${ContactName}

然后在文档页面上,您将选择要使用的模板,然后它将您的标签转换为 HTML 标记。文档页面使用 CKEditor 进行所见即所得的编辑。现在我有它,所以当模板被渲染时,它看起来像:

<span class="RestaurantName">Ruby Tuesdays</span>
<span class="ContactName">Bob Smith</span>

这个想法是在我将文档发送回数据库进行保存之前,我想将我的返回转换为模板标签,这样如果数据在网站上的其他地方更新,它也会在页面呈现时更新再次。

任何有关我如何完成此任务的帮助或指示都会有很大帮助。谢谢!

【问题讨论】:

  • 发送到服务器前的数据如何?

标签: jquery jquery-plugins jquery-templates


【解决方案1】:

考虑从 DOM 获取数据而不是“反向模板”可能更容易。查看$.link() (jQuery 1.4.3) 或使用jeditable 插件即时更新元素数据。

【讨论】:

  • 感谢您的回复。我认为 jeditable 在这种情况下不会有帮助,因为它是一个文本区域。但我会研究 $.link() 方法!
  • 另外,您可以尝试使用 ID 属性而不是 CLASS 属性来渲染模板中的项目。使用 ID,您可以像这样调用确切的元素 $('#id').val() 来获取值。
【解决方案2】:

通过 StackOverFlow 聊天室的一些帮助,我能够弄清楚如何转换上述文本:

var editorText = ckeditor.ckeditorGet().getData(), temp = $('<div />').append(editorText);

$.each(templateTags, function(name, val){
    temp.find('span.'+name).after('{{html '+name+'}}').remove(); 
}); 

console.log(temp.html()); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-24
    • 2023-03-09
    • 1970-01-01
    • 2015-05-14
    • 2011-05-09
    • 2011-09-19
    • 2016-09-14
    相关资源
    最近更新 更多