1

DerbyJS ( http://derbyjs.com ) 目前似乎工作的方式是,每当您单击链接时,它都会替换文档正文标记中的所有内容。

无论如何要说使用模板,但是用它而不是整个正文替换#main-content 中的内容?

左侧的导航是固定的,不需要实时交互的好处。

为什么这是一个问题,需要在页面加载时运行一些 Javascript 以根据用户浏览器窗口的大小设置某些容器的大小,一旦我点击一个链接,这个设置就会被擦除并重新创建,当然, Javascript 不再运行,因为文档本身没有刷新,只是正文。

这也将允许我在大多数情况下编写更好的 jQuery 绑定$('element').click(,而不是$('html').on('click','element', ...

有什么想法吗,或者这一步对于这个框架来说是不是太远了?

PS 因为我才刚刚开始使用 Derby 和一般的实时框架,也许我想要做的不是最佳实践?我选择 Derby 是因为我喜欢在服务器上进行初始渲染的 UX 部分,然后在客户端中进行其余部分,但共享路由器,这减少了代码重复。对实现这一目标的任何更好方法持开放态度。

4

2 回答 2

3

无法在页面重新加载时重新渲染正文的一部分。只是全身。

您可以使用app.enter钩子在每次页面渲染后运行 js 代码。

无需使用 jQuery 绑定,使用Derby 绑定

于 2013-12-26T02:10:51.843 回答
2

我完全同意弗拉基米尔的回答,只是想添加一些东西。

应该可以通过过渡路由( http://derbyjs.com/#routes )重新渲染部分 UI 。在您的情况下,似乎 app.enter 是要走的路。

于 2013-12-29T09:57:04.040 回答