Angular提供程序未加载

时间:2014-04-21 17:29:12

标签: javascript angularjs angularjs-service

我在加载我的提供商时遇到了一些问题。

设置如下:

  • ng-view with main.html
  • main.html有控制器MainCtrl
  • 我有几个需要访问相同数据的指令,因此我使用提供程序来获取它。
  • 我有一个名为ItemStorage的提供程序,它是一个通用提供程序,用于根据参数编写,读取等任何内容
  • 我有另一个引用ItemStorage的提供程序,它提供了从ItemStorage获取特定内容的方法,名为Data

当我在我的控制器中引用数据(引用ItemStorage)时,我得到一个:  “错误:[$ injector:unpr]未知提供者:ItemStorage”

但当我删除Data对ItemStorage的引用时,应用程序执行完美(减去由于指向空对象而导致的一些未定义错误)

根据JSHint,我没有语法错误。以下是我的提供者文件,任何帮助将不胜感激!

angular.module('myApp')
.provider('itemStorage', function(){
this.$get = function(){

    };
    //some other methods
})
.provider('Data',function(itemStorage){
var ItemStorage = {};
this.arrays = ItemStorage.arrays;

this.$get = function(){
    return {
                foo: function(){ return this.getItemFromStorage(
    };
};

this.getItemFromStorage = function(item){
    return Storage.getItem(item);
};
})

这只是代码的有限子集。

在写这篇文章时我已经做了一些阅读..在运行期间无法更新提供程序?我可以不调用一种方法来保存本地存储吗?

最终我需要一些可以保存当前用户数据的东西,这些数据是可访问的,并且可以被任何元素更新以更新每个其他元素..这可能吗?

1 个答案:

答案 0 :(得分:0)

当与文档进行比较时,您似乎没有命名您的功能,这可能是问题所在。所以尝试类似的事情:

angular.module('myApp').provider('itemStorage', function itemStorageProvider(){

这个。$ get = function(){

};

})

您可能还需要按照

的顺序将此添加到配置中
myApp.config(["itemStorageProvider", function(itemStorageProvider) {

}]);

Provider docs from angular website

松散地采取