试图与Ember获得JSON数据
这里就是我的JSON数据是这样的:试图与Ember获得JSON数据
[{"id":1,"iam":1,"youare":2,"lat":50.8275853,"lng":4.3809764,"msgbody":"Lorem ipsum lorem ipsum lorem ipsum"}]
这里是我的灰烬代码:
window.Messages = Ember.Application.create();
Messages.Store = DS.Store.extend({
revision: 11
});
Messages.MessagesRoute = Ember.Route.extend({
setupControllers: function(controller) {
controller.set('content', Messages.Message.find());
}
});
Messages.Message = DS.Model.extend({
msgbody: DS.attr('string')
});
Messages.MessagesController = Ember.ArrayController.extend({
content: []
});
的事情是我的JSON数据住在/app_dev.php/消息没有在/消息/ ...
我只是试图做的只是一个成功的GET请求,但我不能管理......你能告诉我在做什么错了,所以我可以得到灰烬的一些把握句法?
编辑感谢您的回答。只是告知,经过许多努力,使一些微不足道的东西,我尝试了Angular,它似乎更好,更快,更容易地完成这项工作。所以我正在切换框架。
你会想在适配器上使用命名空间选项。这可以按照以下方式指定,然后在创建商店时使用MyApp适配器。
MyApp.Adapter = DS.RESTAdapter.extend({
namespace: 'app_dev.php'
});
-
我觉得这是更好地通过
url
选项来指定文件名:App.Store = DS.Store.extend({ 修订:11, 适配器:DS .RESTAdapter.create({url:“/app_dev.php” }) });
您的JSON的结构应如下:
{
messages: [
{"id":1,"iam":1,"youare":2,"lat":50.8275853,"lng":4.3809764,"msgbody":"ipsum "},
{"id":2,"iam":1,"youare":2,"lat":50.8275853,"lng":4.3809764,"msgbody":"Lorem "}
]
}
进一步参考见ember guide。
谢谢西蒙。问题是我不能真正的会干扰我的Json是如何生成的,我不知道如何用Mysql .../pho实现这个输出。 – 2013-02-16 21:59:52
Ember要求您使用他们所称的“类型键”来成功读取JSON,换句话说,您需要在对象本身之前放置模型的名称,以便Ember识别该类型。
在我的例子中,我创建了一个Java/Spring后端,并且不想将它添加到我的对象中,为了解决这个问题,您可以创建一个Serializer文件,Ember Serializers的文档,特别是RESTSerializer可以发现here。
将typeKey添加到传入JSON覆盖normalizePayload挂钩。下面是我如何做一个例子:
如果你还没有把你的typeKey的对JSON的出路,你可能会遇到类似的问题,当你把或POST数据,所以你会可能需要重载serializeIntoHash挂钩以移除传出数据上的typeKey。这里是一个例子,什么对我有用:
serializeIntoHash: function(hash, type, record, options){
Ember.merge(hash, this.serialize(record, options));
}
希望帮助!我看你切换到角(伟大的决定,我更喜欢灰烬角100倍,但我的工作需要我用灰烬目前,所以我通过它的战斗。)但希望这可以帮助别人谁是遇到类似问题,或者希望或被迫使用Ember。
谢谢,我做了这个改变,没有控制台错误..但是:没有json ajax请求:(我想我的路由器没有正确设置..? – 2013-02-16 07:52:05