角js中的$ resource是多少?为什么我们需要使用它的好处克服$ http?

时间:2016-10-07 17:53:14

标签: angularjs

我坚持使用$ http和$ resource,因为当我们需要在角度应用程序中使用$ resource时,我无法得到它?但是,当我们已经使用$ http时,我有一个混乱,然后在自己的应用程序中使用资源的主要目的是什么?

2 个答案:

答案 0 :(得分:0)

我看待$ resource的方式是预先定义$ http调用。

如果您在整个应用程序中使用相同的呼叫,只需注入$ resource服务并拨打电话

如果api url改变你只需要在一个地方改变$ $ resouce的另一个好处。

答案 1 :(得分:0)

我在$ resource中看到的一个很大的优势就是数据的建模。如果您传递的是名为Student的Resource对象和执行

var Student = $resource('/api/student/:id');
Student.get({id: 123}, student => {
    student.testScorePerc = 98;
    student.$save();
}); 

您希望收到一个代表姓氏为“LastName”的学生的对象。在我看来,这比使用依赖于$ http的服务更加清晰......

Service.$inject = ['$http'];
function Service($http) {
    this.getStudent = function(id) {
        $http({method: 'GET', url: `api/student/${id}` });
    };
    this.updateStudent = function(id, student) {
        $http({method: 'PUT', url: `api/student/${id}`, data: student});
    };
}
Service.getStudent(123).then( res => {
    let student = res.data[0];
    student.testScorePerc = 98;
    Service.updateStudent(student.id, student).then( res => {
        let dosomethngWith = res.data;
    }).catch( err => {
        console.log(err);
    });
});

我认为使用该服务时不那么明确......当然这只是一个简单的例子。

我的基线是我可以与Resource对象进行交互,在我看来,这些对象更清晰,更能代表我的数据。