2016-12-13 42 views
1

在我的路由提供者中,我有一個從JSON文件返回一些數據的解析對象。我可以在沒有任何問題的情況下將其傳遞給我的控制器,但當我嘗試將它傳遞給我的工廠或服務時出現錯誤(未知提供者)。有沒有解決方法?是否可以將數據從routeProvider解析傳遞給工廠/服務?

路由供應商:

.config(['$routeProvider', function($routeProvider) { 
    (...) 
     resolve: { 
      'someData': function($http) { 
       (...) 
       return response.data; 
      } 
     } 
    }); 
}]) 

廠:

.factory('generateAvatarsFactory', ['someData', function(someData) { 
(...) 
// throws an unknown provider error 

控制器:

.controller('SomeName', ['someData', function(someData) { 
(...) 
// works fine 
+0

把它作爲你的服務的方法的參數。一項服務是一個單身人士。它不能依賴於每次導航到路線時都解決的一些數據。 –

回答

1

你應該設置在服務通過這樣的方法,而不是將它傳遞給的服務的輸入,因爲服務是單身人士:

.factory('generateAvatarsFactory', ['someData', function(someData) { 
    this.data = {}; 

    this.setValue = function(value) { 
     this.data = value; 
    } 
}]); 

,然後在routeProvider:

resolve: { 
    'someData': function($http) { 
     (...) 
     generateAvatarsFactory.setValue(response.data); 
     return response.data; 
    } 
}  
相關問題