使用相同的玉石视图进行编辑和创build

希望这不是太愚蠢的问题,因为我试图让我的头靠近节点。

我一直在看expression式框架,并试图让我的头在创build/编辑视图的简单问题。

如果我有一个玉石观点如下:

input(name='bar', id='bar', value=#{foo.bar}) 

该视图期望在我传回的模型上的属性foo.bar,罚款编辑屏幕。 但是,如果这是一个创build屏幕,我真的不想要传回一个空的模型。 这应该怎么处理? 这只是一个情况,我必须传回一个空模型? 如果是这样,任何指向这种模式的指针将是伟大的。

谢谢。

(我知道我错过了一些基本的东西)

       

网上收集的解决方案 "使用相同的玉石视图进行编辑和创build"

我自己做了这个,只是总是确保有一个foo对象,然后引用foo.bar。 这可以通过很多方式来完成。 您可以劫持res.render或使用您自己的自定义渲染方法,就像这样(初始化时):

 express.response.renderFooAdmin = function (view, data, callback) { data.foo = data.foo || {}; this.render(view, data, callback); }; 

并在你的路线:

 res.renderFooAdmin('view', data); 

并直接引用对象而不是通过#{}块不打印“未定义”:

 input(name='bar', id='bar', value=foo.bar) 

你可以使用它。 你还得在这里传一个空的foo 。 如果你想避免这一点,你可能想检查typeof foo != null

 input(name='bar', id='bar', value=foo ? foo.bar : 'default')