gpt4 book ai didi

spring-mvc - Emberjs 没有正确接受来自 spring mvc 的数组

转载 作者:行者123 更新时间:2023-12-02 06:10:32 25 4
gpt4 key购买 nike

我是 Ember 的新手,对 JavaScript 不是很擅长。

我正在尝试在后端使用 Java Spring MVC,在前端使用 Ember。当我试图访问一个页面时。 Ember 向服务器发出数据请求。服务器用数组回答,但在 Ember 端没有正确检索到数组。我得到一个异常(exception)。

Error while loading route: Error: No model was found for '0'
at new Error (native)
at Error.Ember.Error (http://localhost:8080/libs/js/ember.js:844:19)
at Ember.Object.extend.modelFor (http://localhost:8080/libs/js/ember-data.js:9805:33)
at JSONSerializer.extend.extractArray (http://localhost:8080/libs/js/ember-data.js:3172:28)
at superWrapper (http://localhost:8080/libs/js/ember.js:1239:16)
at Ember.Object.extend.extractFindAll (http://localhost:8080/libs/js/ember-data.js:2380:21)
at Ember.Object.extend.extract (http://localhost:8080/libs/js/ember-data.js:2365:37)
at http://localhost:8080/libs/js/ember-data.js:10396:34
at invokeCallback (http://localhost:8080/libs/js/ember.js:9753:19)
at publish (http://localhost:8080/libs/js/ember.js:9423:9)

在调试 javascript 时,我发现有 for in 循环遍历数组
 for (var prop in payload)

这个 for in 循环不是检索数组元素,而是抛出属性。这可能是因为他们在 this question on SO 中谈论的内容.

对我来说有问题的代码在 github here .

难道我做错了什么?我应该报告错误吗?

我创建了以下 Ember 模型:
App.User = DS.Model.extend({
email: DS.attr('string'),
active: DS.attr('boolean'),
});

这就是映射在服务器端的样子
@RequestMapping("/users")
public
@ResponseBody
List<User> users() {
System.out.println("getting users");
List<User> list = new LinkedList<User>();
list.add(new User(1,"test@b.c"));
list.add(new User(2,"test2@b.c"));
list.add(new User(3,"test3@b.c"));
return list;
}

我从 fiddler 那里得到的这个 JSON:
[{"id":1,"email":"test@b.c","active":true},{"id":2,"email":"test2@b.c","active":false},{"id":3,"email":"test3@b.c","active":false}]

最佳答案

默认情况下,我相信 ember-data 期望您的 JSON 响应以模型名称为前缀,即使它是一个数组。这意味着您的数据需要像这样格式化:

{
"users":[
{
"id":1,
"email":"test@b.c",
"active":true
},
{
"id":2,
"email":"test2@b.c",
"active":false
},
{
"id":3,
"email":"test3@b.c",
"active":false
}
]
}

关于spring-mvc - Emberjs 没有正确接受来自 spring mvc 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22134030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com