2012-07-16 60 views
0

我已经重写了一个grails应用程序,这样它的3个域都可以在我认为是正确的/基本的URL的地方都可用。这些域的每个控制器都有一个索引动作,并且取决于使用哪个request.method以及是否传递了id,我准备好发送json响应或者保存/删除/ etc。什么是最简单,最简单的Backbone.js代码来做REST(假设服务器端是正确的)?

在事物的普惠制方面,我有jQuery的,骨干,并强调所有加载。我已经仔细检查过,这些加载都是正确的,并且各个API似乎都可以从我插入脚本元素的任何代码中获得。

不过,尽管如此,我似乎无法让Backbone.js的做任何有用的。我已阅读了Stackoverflow上的文档,至少一打教程/示例和大约100个与骨干相关的问题。我唯一能确定的是路由器的功能对这个特定的项目不感兴趣。

我已经告诉我的是使用数据表或作为的jqGrid此应用程序的网格小部件选择。我没有任何方式的偏好,但如果考虑Backbone.js比其他人更容易,我会很乐意选择它。我已经有一些运气将数据加载到数据表中,但只能直接将它写入GSP表中。

我知道骨干可能不是我们的最佳选择,但我在这个问题上别无选择。说实话,我并不确定Backbone.js试图实现什么。

什么是最简单的,最起码的代码,将领带骨干,其余的东西在一起,这样当一个按钮被点击的网格小部件的行中,将相关的记录被删除?所以相关数据也首先加载到网格小部件中,对于这个问题呢?这样我就可以从网格的最后一行的任意html输入添加/插入记录,或编辑那里列出的现有记录?

我可以提供任何需要的代码,但它似乎并不需要......我认为我已经把Grails方面放在了非常接近需要的地方,并认为它只会使页面变得混乱。提前抱歉,试图提炼,因为我把它写成一个问题,你们有机会回答。

+0

你确信你映射的所有请求类型(GET /把/职位/删除),您的单一指标的行动? – jackwanders 2012-07-16 16:22:04

+0

我很确定我正确地做了这件事,是的。我有一个复合ID,所以对于我传入的大约4个值(但我测试过,我把所有这些......终于弄清楚UrlMappings),如果request.method不== “GET”,我测试了其他3。该代码被剔除(因为我不知道post的params会被命名),但我想我已经找到了这个部分。 – 2012-07-16 17:10:21

回答

4

为每个模型和集合定义url-属性,以表示与该模型或集合对应的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()功能获取整个集合。获得有关主干和CRUD操作的准确信息的最佳位置是backbonejs.org,如果您想要更丰富的示例教程,请参阅the great Wine-Cellar tutorial的CRUD部分以了解Backbone。

希望这会有所帮助!