[英]AngularJs with Ionic, Cordova, Node.js, views and other 'static' files
全面披露,這對Angular和Ionic來說還很陌生,我正在嘗試從概念上理解它,並獲得最佳實踐的感覺,以便我不再陷入困境。
我已經基於香草html / css / js結合了node.js后端和針對應用程序UI的jquery mobile構建了網站和應用程序。
在那些需要Web服務/后端的情況下,我通常使用.ejs文件和局部視圖作為視圖,並使用res.render響應(將數據動態傳遞到視圖中)為它們提供服務,例如...
app.get('/showallcustomers', function(req, res){
db.connect("SELECT * from customers", [], function(result, error){
var data = result.rows;
res.render('pages/showall', {data:data})
});
});
...同時將S3用於我的靜態JS / CSS / Images等,以減輕有關靜態資源的node.js Web服務的負擔。
通過ajax發出的其他請求將僅從node.js服務器發送/接收json。
現在,在使用角度js和關注點分離的情況下,將視圖與控制器和數據分離,我試圖找出“托管”或為我的視圖和控制器提供服務的最佳位置。
對於與cordova捆綁在一起的應用程序,我可以很容易地將所有這些角度視圖/控制器保留在應用程序的根www文件夾中,並與應用程序打包在一起(有點像巨型的“頁面”驅動的index.html jQuery mobile的文件),但我可以改用像S3這樣的CDN作為我的“靜態”文件(例如,角度view.html文件和controller.js文件)嗎? 甚至是針對靜態文件的更傳統的虛擬主機類型設置?
然后,我可以(大概嗎?)(使用$ http模塊)將我的網站/應用程序的“數據”流限制為mysite.com/ api類型設置? 就像是:
app.config(function($routeProvider){
$routeProvider
.when('/',{
controller: 'customersController',
templateUrl: 'app/views/customers.html'
})
在控制器中,類似...
$http.get('api/customers');
但是,如果是這種情況,並且我以這種方式提供靜態文件,則routeProvider如何知道在哪里可以找到控制器?
人們在這里通常做什么? 將靜態文件與動態數據完全分開? 還是捆綁在一起? 有正確的方法嗎? 還是我在概念上誤解了某些東西?
假設:
想法:
<script>
標記包含在文件中,因此您只需將它們上傳到S3中即可。 這不應該給您帶來太大的問題。 RouteProvider
和ng-include
,您應該能夠從S3中獲取它們。 $http
模塊更好。 希望這些幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.