我使用Node.js,Express.js和MongoDB进行一些练习。
目前我在尝试推送使用 jQuery.Ajax 创建的新内容时出现问题。
我在Jv主页上有一个帖子列表:(现在我会写一些简单的东西,但我的html元素更多......)
ul
each post in posts
li
h1 title
p post
使用普通表单和回发即可,因为页面已刷新。
Bue使用jQuery和Ajax成功我应该添加新帖子而不刷新页面... 有一个Jade的解决方案没有在jQuery中编写整个html吗?
你能建议一个更好的方法吗?
答案 0 :(得分:1)
Jade编译为HTML,所以不,没有办法在你的jQuery中使用jade模板。但是,您可以做的是在jade中编写代码片段,编译它们,并将它们保存到您的Web服务器(例如post_template.html),然后使用jquery加载文件,从加载的文本创建jQuery元素,然后更改属性和新元素中元素的内容。然后将元素追加到页面。
这种方法可以避免在jQuery中编写html。
//Wrap this in the code that gets updates
$.get( "templates/post.html", function( data ) {
var el = $(data);
//If you want to change specific properties
var title = el.children('h1');
title.text('My new text');
el.appendTo('ul#postList');
});
如果您想在单击时执行此操作,例如,只需将该函数包装在单击处理程序中,以用于要用于触发新项目的页面上的某个元素。