回答
雖然我沒有angular.js的經驗,看着它似乎有一個方法來處理JSON-提供資源Google Buzz example。由於這正是CouchDB的特徵,我認爲不需要涉及node.js。
所有CouchDB的功能可以通過HTTP請求進行訪問,所以它應該適合權,必要時做AJAX調用。 angular.service.$resource看起來是合適的人選。
Ashvin,感謝要求這一點。我也爲這個問題而努力。
我還沒有想出如何使用$資源從AngularJS調用本地CouchDB的,因爲它採用了全本地主機URL是這樣的:
http://localhost:5984/<dbname>/_all_docs
,所有的AngularJS文檔和示例顯示當地路徑名。他們沒有真正告訴人們如何接觸到一個單獨的Web服務,或者至少我還沒有找到一個解釋,幫助:)
下面是使用jQuery的方式,這是我更容易理解。我把它放在一個名爲couch.js的文件中 - 連接到我們的小動物(狗,貓等)的CouchDB。實際的模塊(「APP」),在應用程序其他地方定義,所以我只是把它放在一個名爲「應用程序」的變量,並增加了牀控制像這樣:
(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;
};
});
}());
我加入了回調=?爲了避免本地工作時瀏覽器出現localhost安全問題的JSONP,所以我在CouchDB首選項中設置了JSONP = true。
在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應用程序的數據,我會很感激。
訣竅是,你的頁面,包括查詢到的CouchDB必須從同一個地址和端口的CouchDB本身提供服務。這可以通過服務通過CouchDB的你的HTML,或通過安裝將充當保護傘主辦html和CouchDB的兩個您的Web服務器的代理來實現。
我已經創建了一個名爲CornerCouch的AngularJS模塊,它通過專門爲CouchDB定製它來改進AngularJS $資源的方法 。它基於AngularJS中的$ http服務。我以這種方式結束了非常乾淨的JavaScript代碼,尤其是在特定於應用程序的AngularJS控制器中。
使呼叫直接離開三個選項,據我所知:
從CouchDB的attachement裝入的HTML應用程序直接(CouchApp方法)
使用作爲包含在碼頭項目透明代理(Java應用程序堆棧)
通過GET o允許NLY,但使用JSONP,使其CouchDB的服務器
其他的一切就不會通過跨站點腳本的限制得到了。
我已經修改了AngularJS網站上的例子,而不是使用mongolab CouchDB的。看到這裏的jsfiddle和http://jsfiddle.net/WarwickGrigg/dCCQF/這裏https://github.com/telanova/angularjs-couchdb github上存儲庫。我是一個新手的角度:我發現這是一個鬥爭,讓我的頭一輪$資源,但它似乎運作良好。
$scope.projects = ProjectCouch.get({q:'_all_docs', include_docs: 'true', limit: 10});
angular.module('CouchDB', ['ngResource']).
factory('ProjectCouch', function($resource) {
var ProjectCouch = $resource(':protocol//:server/:db/:q/:r/:s/:t',
{protocol: 'http:', server: 'localhost:5984', db:'projects'}, {update: {method:'PUT'}
}
);
ProjectCouch.prototype.update = function(cb) {
return ProjectCouch.update({q: this._id},
this, cb);
};
ProjectCouch.prototype.destroy = function(cb) {
return ProjectCouch.remove({q: this._id, rev: this._rev}, cb);
};
return ProjectCouch;
});
- 1. 如何將CouchDb與HapiJs連接?
- 2. 將couchDB與骨幹連接
- 3. couchdb連接池
- 4. 連接CouchDB與asp.net C#應用程序
- 5. 連接到Cloudant(CouchDB的)與PHPillow
- 6. 如何在Mac OSX中將SproutCore連接到CouchDB
- 7. 在Angular.js中連接模型
- 8. 將連接與Hadoop連接
- 9. 連接AJAX,CouchDB和JavaScript
- 10. Ektorp CouchDB測試連接
- 11. 用Node.js連接到Cloudant CouchDB?
- 12. Loopback.io和CouchDB連接器
- 13. 如何將Angular2與MongoDB連接?
- 14. 如何將defaultSharedPreferences與addPreferencesFromResource連接?
- 15. 如何將Spotfire與Hive連接
- 16. 如何將RDS與phpmyadmin連接 - AWS
- 17. 如何將flex與mysql連接?
- 18. Mule:如何將Mule ESB與Hybris連接?
- 19. 如何將Fennec與eclipse連接到Android
- 20. 如何將cpanel與RESTful API連接?
- 21. 如何將FaceBook SDK與cocos2d連接
- 22. 如何將WCF與Android連接?
- 23. 如何將StaticListableBeanFactory與ClassPathXmlApplicationContext連接?
- 24. 如何將Matlab與PHP連接
- 25. 如何將RFID與VB.NET連接?
- 26. 如何將Oracle MCS與EBS連接?
- 27. 如何將boto與fakes3連接3
- 28. 如何將邏輯與對象連接
- 29. 如何將intellij與本地mysql連接?
- 30. 如何將Neo4j與Zest連接?
由於AngularJS在1.6+版本中已經移除了對$ http.success()和$ http.error的支持,因此最近停止工作。我提出了一個問題。 –