在Jade和Javascript之间共享布局信息

我有一个基于Node.js / Jade的网站,我正在尝试添加一些Javascript的一些简单的交互性。

特别是,我试图设置一个button,添加一个新的行到表。 表格渲染目前在Jade中完成,我正计划使用JQuery来设置callback以添加行。

我的模板看起来像这样:

tbody#my_body - each foo in foos tr td= foo.blah td= foo.hello td a( ... complex link stuff etc. ) 

我想我的JScallback将是

 $("a#add_row").click(function(){ $("#my_body").append( ??? ); }); 

我可以用append body在HTML中重写整个布局,但这看起来很愚蠢。 每当我改变一个我不得不改变另一个。

有没有在Jade模板和Javascript之间共享布局代码的方法?

我的意思是,当你写视图的时候,你可以访问服务器端的variables。 你也可以做你的模型/variables转储到JSON并使用它。 最后,您可以查看Backbone.js并在客户机/服务器上重复使用相同的模型。 看到这个职位 。

所以…我不认为我完全明白你在问什么。 您希望表在会话之间是静态还是在单个会话或刷新的上下文中?

如果是后者,那么你只需通过jQuery添加表格行,就像你将一个完整的html网站一样。 当你调用jquery函数时,express已经把jade模板渲染成完整的html。

如果你想要这行保持,那么你需要包含一个调用服务器,将新行数据添加到您的数据收集foo,然后每当页面再次呈现服务器将传回foo回所有先前的行+你刚刚添加。