Jus*_*cha 16 lazy-loading lazy-initialization angularjs angularjs-service
我正在尝试实现这样的程序结构:

这里的问题是,当开头没有明显的控制器使用功能时,它们没有实例化而没有注册FeatureRegistry,因此它们无法显示在视图中.但我想要实现的是它们出现在视图中,然后通过模板加载ng-include,然后在模板中有每个特性的特定控制器.这些控制器是使用功能的控制器.
这些功能基本上只用于说明要使用的模板和图标的位置,以及启动功能的开始.
但回到我最初的问题:
即使现在不需要服务,如何实例化服务呢?
或者是否有其他功能,我可以使用它而不是服务?我还想如果你指出我那么:)
Umu*_*acı 22
您可以在run应用程序的部分中询问它,注入器将调用它.
angular.module("myApp", []).
    factory("EagerService", function () {
        console.log("I'm ready.");
    }).
    run(function (EagerService) {
        console.log("EagerService is ready.");
    });
然而,据我所知,你有孩子/子控制器需要这个EagerService.你为什么不把它注射到那里?
(因为这是相对陈旧的 - 这个答案是针对未来的读者 - 但我偶然发现了这个问题,所以也许其他人也会这样做)如果你使用提供者/配置块 - 他们是热切地完成的,所以最好在那里做急切的初始化代码.您可能正在考虑服务/运行块.
要使用代码进行演示,此警报将不会弹出(假设myServiceModule您的应用程序依赖于该模块并且myService未在任何位置注入):
angular.module('myServiceModule', []).service('myService', function () {
    alert("service");
    // service
    return {};
});
但是,即使没有人依赖myProvider服务,此警报也会弹出:
angular.module('myProviderModule', []).provider('myProvider', function () {
    alert("provider");
    // Define your service here. Can be an array of inject-ables 
    // instead of a function.
    this.$get = function () {
        // service
        return {};
    };
});
你可以在这个plunker中看到这个.
了解更多有关正式文件提供者在这里.
| 归档时间: | 
 | 
| 查看次数: | 6526 次 | 
| 最近记录: |