如何使用Grails控制器名称使Ember.js表现?

Zac*_*gle 4 grails ember.js ember-data

Grails功能非常强大,允许您使用单个语句(object as JSON)将Domain对象转换为JSON .不幸的是,由于一些原因,这还不足以与Ember.js交互.

我怎样才能让Grails与Ember.js很好地搭配?

Zac*_*gle 12

好问题,自我!

Ember.js及其自动AJAX-in-browser-data-store ninjitsu期望URL看起来有某种方式,而JSON看起来有某种方式.由于每个工具的工作方式,它更容易做出符合更改方程式两侧!

Grails提供的内容

对于MyCoolDomainClass具有控制器的Domain类MyCoolDomainClassController,Grails希望提供URL /app/myCoolDomainClass.如果您将控制器设置为包含以下内容:

def index() { render MyCoolDomainClass.list() as JSON }
Run Code Online (Sandbox Code Playgroud)

您将收到如下响应:

[{ id: 1, name: "Bob"}, {id: 2, name: "Sally"}]

恩伯想要什么

在Ember.js中,您可以创建具有相同属性的Model.通过利用ember-data,您可以使用后端轻松地将数据存储连接到浏览器中.不幸的是,Ember.js想要的是不同的.它希望url /my_cool_domain_class提供数据:

{ mycooldomainclass: [ { id: 1, name: "Bob"}, {id: 2, name "Sally"}] }

调和

更新:我ember-data-grails在Github上创建了一个repo,它会为你完成所有这些修改,并演示如何让控制器很好地运行!