【问题标题】:angular module multiple dependancy using modernizr使用modernizr的角度模块多重依赖
【发布时间】:2015-04-07 10:25:31
【问题描述】:

我正在使用“Modernizr”来检测移动设备。我已经为移动设备创建了“touchevent.js”文件

在 touchevent.js 中

`var touchApp = angular.module('ngTouchEvent', [])

在 script.js 中

'var app = angular.module('myApp', [ 'ngTouchEvent' ]);

现在我只想在使用modernizr 的移动设备中加载touchevent.js。 我正在使用

Modernizr.load('touchevent.js');

我遇到了这样的问题

[$injector:modulerr] 无法实例化模块 myApp

在移动设备以外的地方。

我不想在桌面加载 touchevent.js。我能有解决多依赖的方法吗

【问题讨论】:

  • touchevent.js ,你可以把它当作服务
  • 这是一个例子。在多种情况下,根据设备宽度和类型(ios,IE)我必须限制所有 js 加载。我想加载需要文件但依赖注入有问题
  • 表示你只想在需要时加载你的js文件

标签: angularjs modernizr


【解决方案1】:

实际上 Modernizr 是一个 javascript 对象,您可以直接在任何 Angular 控制器或指令中使用它,而无需指定对 Angular 应用程序的任何依赖。您可以创建这样的提供程序以在控制器或指令中使用 Modernizr,如下所示:

angular.module('myApp').provider('Modernizr', function() {
    this.$get = function() {
        return Modernizr || {};
    };
});

Modernizr.mq()

【讨论】:

    【解决方案2】:

    你可以看看这个项目,它提供了一个基础项目,用于使用 AngularJS 和 RequireJS 来按需加载所需的 js 文件。

    https://github.com/tnajdek/angular-requirejs-seed

    如果你的应用程序很大,它可能会很有用,否则它可能会有点矫枉过正,因为仅使用 AngularJS 就可以减少要编写的代码量。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 2015-06-19
      • 2015-10-24
      • 2017-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多