[英]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.