Angular - 我如何使用$ resource

时间:2013-10-20 15:16:05

标签: angularjs angularjs-scope angular-ui

我有一个适用于Angular UI typeahead的控制器。如何将服务器调用添加为资源?

var receivableApp = angular.module('receivableApp', ['ui.bootstrap', 'ngResource'])
.controller('ReceivableController', function ($scope,$http) {
    $scope.Debtors = function (term) {        
        return $http.get('/Receivable/GetDebtors/?term=' + term).then(function (response) {                
            return response.data;
        });
    };
});

2 个答案:

答案 0 :(得分:1)

receivableApp.factory('GetDebtors', ['$resource',
    function($resource){
        return $resource('/Receivable/GetDebtors/');
    }]);

这将添加一个带有默认GetDebtors的服务GET和其他REST处理程序。

现在,要在控制器内拨打电话,您可以执行以下操作:

debtControllers.controller('DebtCtrl', ['$scope', 'GetDebtors',
    $scope.debts = GetDebtors.get({term: 'foo'});
]);

这相当于拨打/Receivable/GetDebtors/?term=foo

如果要更改行为,可以覆盖$resource上可用的默认方法。可以找到更多详细信息here

答案 1 :(得分:0)

$ resource旨在从端点检索数据,对其进行操作并将其发回。

在你的资源上使用自定义方法很好,但是你不想错过它带来的很酷的功能OOTB.var Todo = $ resource('/ api / 1 / todo /:id');

//创建一个todo var todo1 = new Todo(); todo1.foo ='bar';  todo1.something = 123;  。todo1 $保存();