angularjs – 如何在提供程序中访问$窗口?

前端之家收集整理的这篇文章主要介绍了angularjs – 如何在提供程序中访问$窗口?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想从一个提供者(mymodule.provider(…))访问$窗口)但是我需要在配置时的这种依赖关系(所以我没有把这样的依赖关系放在$ get中)。

目前我没有访问$窗口,并且我在配置时间需要这样的依赖性的原因是因为我需要访问$ window.STATIC_URL,这是窗口中的一个常量,我使用它来配置状态的模板($ stateProvider)。

当前代码是:

mymodule.provider('StaticUrl',function() {
    this.url = function() { return window.STATIC_URL || 'static'; };
    this.$get = this.url;
});

这是因为我在配置和运行时都需要这样的值(我使用它不仅仅是设置状态,所以当我在控制器中需要这样的URL时,我将其导入为依赖)。

//config
mymodule.config(['StaticUrlProvider','$stateProvider',function(sup,$sp){
    //...
    $sp.state('main',{
        templateUrl: sup.url() + 'path/to/template.html'
    });
    //...
}]);
//run-time (in this case: a controller)
mymodule.controller('MyController',['$scope','StaticUrl',function($s,su) {
    var buildingType = /*a complex expression here*/;
    $s.buildingPicture = $su + 'path/to/building/pics/' + buildingType + '.png';
}]);

给定一个现有的数据集,我有一个图片,每个条目位于STATIC_URL下,必须提供。所以这意味着我在两个阶段都使用这样的常数。

我将如何以更加角色的方式进行(即不依赖全局变量)?有没有办法可以从提供者访问$窗口而不提高moduleerr?

注入$ windowProvider并调用$ windowProvider $ get()
原文链接:https://www.f2er.com/angularjs/144556.html

猜你在找的Angularjs相关文章