4

Is there any JS framework that provides two-way binding with server-side rendered htmls? Like Angular/Ember but instead of rendering html at client-side only update server-side generated html.

I like to keep html pages viewable without JS and only use JS to make them interactive. I'm using jQuery right now but manual pulling and pushing data from and to view is cumbersome.

4

3 回答 3

2

我们一直在寻找这个,并且已经开始探索rivets.js来做到这一点。

在服务器端,我们:

  • 使用铆钉所需的“特殊前缀属性”渲染 HTML
  • 在标签中发送页面上使用的模型的 JSON <script>(也称为引导)

在客户端,我们:

  • 用 Backbone 组织我们的代码
  • 将引导模型与<div>包含模型渲染表示的 s绑定

铆钉管理绑定。

这仍然是相当实验性的,所以当我们更好地了解权衡和性能时,我会更新这个答案。

于 2013-10-27T00:50:01.940 回答
1

我无法与 Ember 交谈,所以我将作为 AngularJS 社区的活跃成员来回答。

Angular 和 Ember 主要是客户端MVC框架,因此在此之外使用它们可能没有多大意义。例如,AngularJS 提供的飞跃不仅仅是双向数据绑定。

即使你让它工作,它也将是矫枉过正。它们旨在构建 Web 应用程序,而不是网页。我认为 JavaScript MVC 框架适合简单地“使 [页面] 交互”。此外,jQuery 已经做得很好,您可以使用模板引擎来完成一些数据绑定。

但总的来说,我是 AngularJS 和客户端 MVC 的忠实粉丝,所以我想提供更多帮助:

  • 你能提供一些关于你为什么关注 AngularJS 和 Ember 的见解吗?
  • 你想做什么你不能在 jQuery 中做?
  • 为什么要扩充网页而不是设计更多的网络应用程序?
于 2013-03-22T19:56:45.317 回答
1

您正在寻找的是旨在使用 __ Progressive Enhancement的框架

Ember.js 和 Angular 采用了非常不同的方法。鉴于您要求“在没有 JS 的情况下保持 html 页面可见”,这两者都不是一个好的选择。当然,使用 jQuery 是一种选择,但就像你说的那样,它可能很麻烦。可能值得重新考虑该要求。

于 2013-03-22T21:19:09.983 回答