0

我有这个控制器可以为 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;
        });
    };
});
4

2 回答 2

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

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

现在,要在控制器内部进行调用,您可以执行以下操作:

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

这相当于调用/Receivable/GetDebtors/?term=foo.

如果要更改行为,可以覆盖$resource. 更多细节可以在这里找到。

于 2013-10-20T15:28:51.730 回答
0

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

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

//创建一个待办事项 var todo1 = new Todo(); todo1.foo = '酒吧'; todo1.something = 123; todo1.$save();

于 2013-10-20T15:43:06.767 回答