2015-03-15 3 views
3

Я чувствую, что это, наверное, немой вопрос, но у меня возникли проблемы с визуализацией, как сделать эту работу.Угловая фабрика AngularJS

У меня есть завод, используемый для обмена данными между контроллерами, например:

app.factory('DataShare', function(){ 
    //Share Data between controllers via the sharedItem object and the get/set functions 
    var sharedItem = {}; 
    function set(sharedData){ 
     sharedItem = sharedData; 
    } 
    function get(){ 
     return sharedItem; 
    } 
    return{ 
     set: set, 
     get: get 
    }; 
}); 

Он работает просто отлично. Проблема в том, что несколько раз в моем приложении, где мне нужно обмениваться данными. В настоящее время у меня есть несколько заводов с разными именами, которые содержат те же методы, что и выше. Может ли кто-нибудь посоветовать лучший способ создать абстрактный завод, который я мог бы использовать для обмена разными данными между разными контроллерами?

ответ

3

Создайте новый файл и объявите новый объект.

var mySharedLib = mySharedLib || {}; // declare a new namespace for the shared code. 

mySharedLib.DataShare = function() { 
    // your factory logic 
} 

Тогда угловая сторона:

app.factory('DataShare', mySharedLib.DataShare); 
+0

Спасибо за что ясно. Прекрасно работает для моих многочисленных экземпляров. –