我有一个适用于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;
});
};
});
答案 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 $保存();