Эшвин, спасибо, что спросил это. Я тоже борюсь с этим вопросом.
Я еще не выяснил, как использовать $ resource для вызова локальной CouchDB из AngularJS, поскольку она использует полный URL-адрес локального хоста, например:
http://localhost:5984/<dbname>/_all_docs
и все документы и примеры AngularJS показывают локальные имена путей. Они на самом деле не говорят, как обратиться к отдельному веб-сервису, или, по крайней мере, я не нашел объяснения, которое помогает:)
Вот способ использования jQuery, который мне было легче понять. Я поместил это в файл с именем couch.js - чтобы подключиться к CouchDB наших тварей (собак, кошек и т. Д.). Фактический модуль («приложение») определен в другом месте приложения, поэтому я просто поместил его в переменную с именем «приложение» и добавил контроллер Couch следующим образом:
(function () {
'use strict';
var app = angular.module('app');
app.controller('CouchCtrl', function ($scope,$http,$resource) {
var all_critters = 'http://localhost:5984/critters/_all_docs?callback=?';
$.getJSON(all_critters, function(json) {
$scope.$apply(function(){
$scope.all_critters = json;
});
});
$scope.getAllCritters = function() {
return $scope.all_critters;
};
});
}());
Я добавил? Callback =? для JSONP, чтобы избежать проблем безопасности localhost с браузерами, когда я работал локально, поэтому я установил JSONP = true в настройках CouchDB.
На html-странице просто посмотрите на результат этого вызова, поместив crittersDB в привязку:
<ul ng-controller="CouchCtrl">
<h5>Critters</h5>
<p>There are currently {{all_critters.total_rows}} critters.</p>
<li ng-repeat="(key,value) in all_critters">
{{key}} - {{value}}
</li>
</ul>
Если бы кто-нибудь мог опубликовать какой-то реальный код ресурса AngularJS $ для репликации этого способа jQUery.getJSON извлечения данных из CouchDB в приложение AngularJS, я был бы благодарен.