【发布时间】:2015-11-06 14:34:30
【问题描述】:
完全披露,对于 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})
});
});
...在为我的静态 JS/CSS/Images 等使用 S3 时,以减轻 node.js Web 服务在静态资源方面的负载。
通过 ajax 发出的其他请求将简单地从 node.js 服务器发送/接收 json。
现在,使用 Angular js 和关注点分离,视图与控制器和数据分离,我试图找出“托管”或服务于我的视图和控制器的最佳位置。
对于与cordova捆绑的应用程序,我可以很容易地将所有这些角度视图/控制器留在应用程序的根www文件夹中,并将它们与应用程序打包在一起(有点像巨大的“页面”驱动index.html 用于 jQuery mobile 的文件),但我可以使用像 S3 这样的 CDN 来处理我的“静态”文件,比如 angular 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 是如何知道在哪里找到控制器的呢?
人们通常在这里做什么?将静态文件与动态数据完全分离?还是全部捆绑在一起?有没有正确的方法来做到这一点?还是我在概念上误解了某些东西?
【问题讨论】:
标签: javascript jquery angularjs node.js cordova