【问题标题】:AngularJs with Ionic, Cordova, Node.js, views and other 'static' files带有 Ionic、Cordova、Node.js、视图和其他“静态”文件的 AngularJs
【发布时间】: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


    【解决方案1】:

    假设:

    • 我对 Cordova 不太熟悉,但我认为它可以像高级浏览器扩展一样工作。
    • 我还假设您的应用程序正在获得足够的流量,从而减轻服务文件的负载并不是矫枉过正。

    想法:

    • 对于 JS 文件,捆绑可能是个好主意。无论您的服务器提供文件还是 S3 提供文件,它都会最大限度地减少浏览器必须建立的连接数量。
    • 对于 JS 文件,由于它们很可能会通过 <script> 标签包含在文件中,因此您可以简单地将它们上传到 S3。这应该不会给您带来太大的问题。
    • 对于 HTML 模板文件,我相信您也可以这样做。使用RouteProviderng-include,您应该能够从S3 中获取它们。
    • 另外,如果您正在执行 API 调用,使用 Angular 服务会比在控制器中使用 $http 模块更好。

    希望这些帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多