首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angularjs ngResource

Angularjs ngResource
EN

Stack Overflow用户
提问于 2014-07-30 02:20:14
回答 1查看 192关注 0票数 0

我对Angularjs很陌生,我一直在寻找一些例子,我看到了一些与我的问题有关的问题,但没有给出的解决方案对我有效,我真的需要帮助,所以我希望有人能帮我忙。

我在Java中有一个RESTApi,一个bean,一个DAO和一个服务类,我使用Hibernate与它在MySQL中的数据库进行通信。

这是我的豆:

代码语言:javascript
复制
@Entity
@Table(name = "T_PERSON")
@XmlRootElement(name = "Person")
//@XmlType(propOrder = {"id", "fullName", "age"})
public class Person {

    private static Logger LOGGER = LoggerFactory
            .getLogger(Person.class);


    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private int id;
    @Column(name = "FULL_NAME")
    private String fullName;
    @Column(name = "AGE")
    private int age;

    @XmlElement
    public int getId() {
        return id;
    }

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

    @XmlElement
    public String getFullName() {
        return fullName;
    }

    public void setFullName(String fullName) {
        this.fullName = fullName;
    }

    @XmlElement
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString(){
        StringBuilder sb = new StringBuilder();
        sb.append(" Id: " + this.id + " Name: " + this.fullName +  " Age: " + this.age + " ");

        return sb.toString();
    }

}

这个方法是从db获取所有记录,它在我的DAO:

代码语言:javascript
复制
public List<Person> getAllPersons() {
    List<Person> persons = null;
    Session session = null;

    try {
        session = sessionFactory.openSession();
        session.beginTransaction();
        persons = session.createQuery("FROM Person").list();
        session.getTransaction().commit();

        LOGGER.info("Query Ok");

    } catch (HibernateException e) {
        if (session != null) {
            session.getTransaction().rollback();
        }
    } finally {
        if (session != null) {
            session.close();
        }
    }

    return persons;

}

--这是我的服务获取JSON格式列表的方法.

代码语言:javascript
复制
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/getAllPersonsInJSON")
public List<Person> getAllPersonsInJSON() {

    return  personDao.getAllPersons();
}

这一切都是我的后端。

现在我在YouTube中学习了一个教程,您必须创建一个web项目并为angularjs使用自定义模板,因此在本教程中,您必须修改三个文件,Services.js、Controller.js和Paral1.html,这是我为每个文件编写的代码。

服务:

代码语言:javascript
复制
var personService = angular.module('myApp.services', [ 'ngResource' ]);

personService.factory('Person', function($resource) {
    return $resource('http://localhost:8080/rest/person/getAllPersonsInJSON',
            {}, {
                findAll : {
                    method : 'GET',
                    isArray : true
                }

            })

});

控制器:

代码语言:javascript
复制
angular.module('myApp.controllers', []).controller('MyCtrl1',
        function($scope, Person) {
            $scope.allPersons = Person.findAll();
//          console.log("Data_: " + JSON.stringify(Person.findAll()));

        }).controller('MyCtrl2', [ '$scope', function($scope) {

} ]);

Partial1:

代码语言:javascript
复制
<h3>View 1</h3>
<ul>
    <li ng-repeat="persons in allPersons">Person</li>
</ul>

因此,在这个html文件中,它应该显示一个包含数据库上所有记录的列表,但不是,我使用的是Chrome网络工具,我获得了200种状态,这是可以的,但是在控制台中,我得到了这样的消息:

错误:资源配置中的$resource:badcfg错误。包含数组但得到对象的预期响应

所以我被困住了,我真的需要帮助,请有人告诉我我做错了什么,因为我已经处理了两天了!

谢谢你的帮助,时间和注意力。

致以问候!

EN

回答 1

Stack Overflow用户

发布于 2014-07-30 02:37:56

检查从您的服务返回的内容,它可能是一个person对象,它包含一个Person列表,而不仅仅是一个person列表。在这种情况下,isArray在您的中应该是false。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25027785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档