2013-10-19 46 views
1

我的第一篇,所以请去容易对我..无法呈现返回我的模型骨干

我目前正在写在BackboneJS + JAX-RS医院排班Web应用程序。它一直OK,直到现在,但我不能为我的生活工作这一个...

在我的Group模型我有一个Users集合。

这返回为JAX的List<User>User@XmlRootElement注释。

但是当我打电话时,它使用User模型而不是Users集合填充Group模型。

有没有办法告诉JAX将User型号列表作为Users集合返回?

任何帮助表示赞赏!

编辑:

组模型在骨干:

window.Group = Backbone.Model.extend({ 
urlRoot: "api/groups", 
defaults: { 
    name: '' 
}, 

validate: function(attrs){ 
    var errors = []; 

    if (!attrs.name) { 
     errors.push({name: 'name', message: 'Please fill in the name field.'}); 
    } 

    if(!attrs.users || attrs.users.length == 0){ 
     errors.push({name: 'users', message: 'Please add at least 1 user.'}); 
    } 

    return errors.length > 0 ? errors : false; 
} 
}); 

在Java中组模型:

package org.jakeduncandev.roster; 

import java.util.List; 

import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement 
public class Group { 

private int id; 

private String name; 

private int ownerid; 

private List<User> users; 

public List<User> getUsers() { 
    return users; 
} 

public void setUsers(List<User> users) { 
    this.users = users; 
} 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public int getOwnerid() { 
    return ownerid; 
} 

public void setOwnerid(int ownerid) { 
    this.ownerid = ownerid; 
} 


} 

JSON返回:

"groups":[{"name":"mates","id":71,"users":[{"id":6,"password":"<PASSWORD>","email":"<EMAIL>","firstName":"Jake","lastName":"Duncan"},{"id":7,"password":"<PASSWORD>","email":"<EMAIL>","firstName":"alec","lastName":"stearn"}],"ownerid":0}] 
+0

如果你发布你的代码,你很可能会得到一些答案。 – Pappa

+0

您必须重写您的模型的'parse'函数以将数据设置为集合。 – user10

+0

可以请你发布你的组模型和你收到的JSON吗? – providencemac

回答

0

解决了!

我为我的Group模型添加了parse方法。然后当我实例化我的集合时,我使用了选项:{parse: true},然后它调用每个模型的parse方法。

感谢您的帮助每个人和user10提示覆盖解析方法!

parse: function(response){ 

    response.users = new window.Users(response.users); 

    return response; 
}