0

我重写了一个 grails 应用程序,以便它的 3 个域都可以在我认为(大部分)正确/Restful URL 上使用。这些域的每个控制器都有一个索引操作,根据使用的 request.method 以及是否传递了 id,我已经准备好发送 json 回复或保存/删除/等。

在 gsp 方面,我已经加载了 jquery、主干和下划线。我已经仔细检查过,这些加载正确,并且相应的 API 似乎可以从我粘贴到脚本元素中的任何代码中获得。

然而,尽管如此,我似乎无法让 Backbone.js 做任何有用的事情。我已经阅读了 Stackoverflow 上的文档、至少十几个教程/示例以及大约 100 个与主干相关的问题。我唯一可以肯定的是,路由器功能在这个特定项目中几乎没有兴趣。

有人告诉我,我可以选择是否使用 DataTables 或 jqGrid 作为此应用程序的网格小部件。无论哪种方式,我都没有偏好,但如果考虑到 Backbone.js,一个比另一个更容易,我会很乐意选择它。我有一些运气将数据加载到数据表中,但只能通过直接将其写入 GSP 表。

我知道 Backbone 可能不是最好的选择,但我在这件事上别无选择。老实说,我不太确定 Backbone.js 想要实现什么。

将 Backbone 和 REST 的东西联系在一起的最简单、最小的代码是什么,这样当在网格小部件的行中单击一个按钮时,相关的记录就会被删除?因此,相关数据也首先被加载到网格小部件中?这样我就可以从网格底行的任意 html 输入中添加/插入记录,或者编辑那里列出的现有记录?

我可以提供所需的任何代码,但似乎不需要...我认为我将 Grails 的一面朝下,非常接近所需的代码,并认为它只会使页面变得混乱。提前为漫无边际的道歉,在我把它写成一个你们有机会回答的问题时试图完善它。

4

1 回答 1

4

为每个模型和集合定义url-attribute 以表示对应于该模型或集合的 RESTful url。这可以只是一个字符串,也可以是一个返回字符串的函数:

url: 'path/to/my/collection-or-model' // string

url: function() { // function
  return 'type-of-collection-or-model/' + this.identifyingAttribute 
}

现在您已经完成了后端的跟踪。接下来是 CRUD(创建、读取、更新、删除)-时间!

model.save() // Saves your model, if it is new this will be a POST request, otherwise PUT

model.fetch() // Retrieves your model from the backed, this will be a GET request

model.destroy() // Destroys your model and removes it from the backed as well, a DELETE

您还可以使用collection.fetch()-function 获取整个集合。获取有关 Backbone 和 CRUD 操作的准确信息的最佳位置是backbone.org,如果您想要更多示例丰富的教程,我会参考Backbone的 Wine-Cellar 教程的 CRUD 部分。

希望这可以帮助!

于 2012-07-16T15:52:39.417 回答