如何使用 ocLazyLoad 进行依赖注入

2024-01-16

我正在使用 ocLazyLoad 并且我有一些外部角度库(例如Chart.js and pascalprecht.translate)并且我需要在某些路由中延迟加载它们,如您所知,对于常见的角度模块依赖注入应该是这样的:

var angularApp = angular.module('myApp',
     ['oc.lazyLoad', 'pascalprecht.translate', 'chart.js']);

现在,我只需要延迟加载pascalprecht.translate在我的一个controllers还有延迟加载chart.js, 在另一个controller,但我仍然需要将它们添加到myApp模块但我不知道如何注入并且我不使用$stateProvider

我尝试了我需要的控制器:chart.js:

//Load here.
//$ocLazyLoad.load('./panel/dist/test.js');
angular.module('myApp', ['chart.js', [
 './panel/dist/static/chart.min.js',
 './panel/dist/static/angular-chart.min.js'
]]);

$ocLazyLoad.load('./panel/dist/static/chart.min.js');
$ocLazyLoad.load('./panel/dist/static/angular-chart.min.js');

但我收到了这个错误:

angular-chart.min.js:10Uncaught 错误:Chart.js 库需要 包括在内,请参阅http://jtblin.github.io/angular-chart.js/ http://jtblin.github.io/angular-chart.js/


首先,您不需要在依赖注入中注入chart.js,这应该是您的module:

var angularApp = angular.module('myApp', [ 'oc.lazyLoad' ]);

现在,您想要从不同的控制器访问一些库(就说路线吧),正如你所说,你不使用$stateProvider这意味着你不使用ui-router https://github.com/angular-ui/ui-router (这是一个处理路由和 URL 的第三方库).

这是我的建议(只是一个简单的解决方案):

angularApp.config(function ($routeProvider, $locationProvider) {
    $routeProvider.when('/home', {
        templateUrl: 'views/home.html',
        controller: 'HomeController',
        resolve: {
            store: function ($ocLazyLoad) {
                return $ocLazyLoad.load(
                    {
                        serie: true,
                        name: "chart.js",
                        files: [
                            "./static/chart.min.js",
                            "./static/chart-angular.min.js",
                        ]
                    }
                );
            }
        }
    });

        $routeProvider.when('/needs-translate', { 
        templateUrl: 'views/needs-translate.html',
        controller: 'translateController',
        resolve: {
            store: function ($ocLazyLoad) {
                return $ocLazyLoad.load(
                    {
                        serie: true,
                        name: "pascalprecht.translate",
                        files: [
                            "./static/translate.js"
                        ]
                    }
                );
            }
        }
    });

    $routeProvider.otherwise({
        redirectTo: '/home'
    });

    // use the HTML5 History API
    $locationProvider.hashPrefix = '!';
    $locationProvider.html5Mode(true);
});

顺便说一句,如果您正在使用ui.router, this Github问题 https://github.com/ocombe/ocLazyLoad/issues/353#issuecomment-252423761对你有用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ocLazyLoad 进行依赖注入 的相关文章

随机推荐

  • 使用 git 子模块时 NuGet 自动包恢复

    我试图了解在引用 Github 上托管的库时是否有任何方法可以依赖 Nuget 自动包还原 问题是 当我添加某些库作为子模块时 它有自己的 packages 目录 但是 当我将该库中的 csproj 添加到我的解决方案中时 由于该子模块的
  • 子类化 UIView 时如何检测箭头键?

    基本上 我想在按下其中一个箭头键时执行某些操作 我读过很多不同的问题 他们中的很多人都在谈论keyDown 但那是为了NSViewController or NSWindow this https stackoverflow com que
  • Pact Dsl - 提供商返回的记录多于 Pact 文件中的记录

    我有以下课程 public class Student private String id private String firstName private String lastName private int age public cl
  • Paper.js 无法正确调整画布大小

    我正在尝试Paper js http paperjs org 为了好玩 但似乎我已经在一开始就陷入困境 Adding resize true to the canvas标签应该使元素与浏览器窗口一样高和宽 然而 这样做会导致一些相当奇怪的行
  • 我如何在 Eclipse 中调试 openerp 代码 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我怎样才能在 eclipse 中调试
  • 使用 IoC 在 SOA 应用程序中通过 DDD 进行验证

    在我的服务外观层中 我有一个服务类 其方法 操作接受 DTO 数据契约 对象 AutoMapper 用于将此 DTO 映射到我的域对象的实例以应用任何更改 该请求被传递到我的域服务 该服务执行实际工作 该方法可能如下所示 public En
  • 如何在 Angular 2 中使用 FullCalendar

    我对 Angular 2 相当陌生 正在尝试掌握如何将 Angular 2 与现有的 Javascript UI 框架库集成 现在我正在尝试使用 jQuery 插件http fullcalendar io http fullcalendar
  • 投影深度的法线

    我想计算法线贴图N i j 从深度图D i j where i j 描述 2D 像素位置 这里讨论这个问题的基本情况 使用相邻像素叉积从深度图像计算表面法线 https stackoverflow com questions 3464410
  • MVC @Url.Content 与 @Url.Action

    我在网上查过但无法找到两者之间的区别 使用 Url Content vs Url Action Url Content当您希望解析站点上任何文件或资源的 URL 并且将相对路径传递给它时使用 Url Content path file ht
  • 两个相同的 URL,但参数顺序不同:内容重复?

    我自己的 CMS 会自动向页面中的链接添加新参数以指定给定语言 它工作得很好 但它并不总是将 var 放在相同的位置 给我一个指向相同页面 语言的链接 www xxx yy index php mod blog page 3 lang en
  • Android WebView如何处理数据?

    Android的WebView可以使用本地存储 Service Workers IndexedDB和许多其他功能 但是 我无法找到有关此数据存储位置以及何时清除的任何信息 通过一些测试 我已经能够确定它们没有存储在缓存中 因为我可以删除缓存
  • CSS 仅适用于 IE 8

    我需要为某些项目设置仅适用于 IE 8 的样式 如果我这样做 然后我这样做 会发生什么 我找到了这个链接到之前的SO问题 https stackoverflow com questions 3958913 fix css if lt ie
  • LINQ to Entities 无法识别 ElementAt 方法

    我正在使用该方法Queryable ElementAt Int32 获取查询结果的特定元素 IQueryable
  • Android ListView下拉刷新

    是否有像 iOS 中那样存在的默认功能来更新列表视图 或者任何其他图书馆 现在支持库支持此功能并称为swipeRefreshLayout https developer android com reference android suppo
  • React-native:动态更新堆栈导航器中的标题标题

    我为标题标题 堆栈导航器 制作了一个自定义组件 它显示用户名以及一些图像 在此页面上我必须编辑用户名并成功也在标题中更新它 所以我的问题是如何动态更改 更新标题 这可以使用导航道具来完成 您可以使用this props navigation
  • iOS6旋转问题

    我知道你必须使用IOS6的新旋转方法 但似乎我写的方法不起作用 我将 plist 文件设置为允许所有旋转 但是不是肖像颠倒 然后我的里面有以下内容应用程序委托 self navController UINavigationControlle
  • 为什么我可以在 JavaScript 中定义函数之前使用该函数?

    即使在不同的浏览器中 此代码也始终有效 function fooCheck alert internalFoo We are using internalFoo here return internalFoo And here even t
  • 使用jpype启动jvm时出现分段错误

    我正在尝试在我的 Python 代码中使用 java sutime 直到昨天 代码一直运行良好 但现在以分段错误结束 问题似乎来自于 jpype startJVM getDefaultJVMPath 该函数以分段错误结束 默认的 JVM 路
  • 有条件的列的计数器缓存?

    我对计数器缓存的概念很陌生 并且我的应用程序主页之一的加载时间有些天文数字 我相信我需要继续下去 我需要实现的大多数计数器缓存都附加了某些 简单 条件 例如 这是一个常见的查询 projects employee projects wher
  • 如何使用 ocLazyLoad 进行依赖注入

    我正在使用 ocLazyLoad 并且我有一些外部角度库 例如Chart js and pascalprecht translate 并且我需要在某些路由中延迟加载它们 如您所知 对于常见的角度模块依赖注入应该是这样的 var angula