2017-04-25 16 views
-1

저는 Angular에 비교적 익숙하지 않아 $ rootScope를 광산처럼 구성된 공장 기능에 주입하는 방법에 대한 정확한 답을 찾을 수 없었습니다. 그래서 어떤 도움을 주셔서 감사합니다. 기본적으로 $ rootScope는 함수 업로드 (파일)에서 사용하기 때문에 삽입하려고합니다. . . . 내가 직접 *의 $의 rootScope를 주입 할 수 있다고 생각

(function() { 
    'use strict'; 

    angular 
     .module('ooApp.controllers') 
     .factory('fileManager', fileManager); 


    fileManager.$inject = ['$q', 'fileManagerClient', 'appInfo']; 

    function fileManager($q, fileManagerClient, appInfo) { 
     var service = { 
      files: [], 
      load: load, 
      upload: upload, 
      remove: remove, 
      fileExists: fileExists, 
      status: { 
       uploading: false 
      } 
     }; 

     return service; 



     function load() { 

      //Do Stuff 
     } 


     function upload(files) { 
      //ToDo Check that file extension exists here 


      service.status.uploading = true; 
      appInfo.setInfo({ busy: true, message: "uploading files" }); 

      var formData = new FormData(); 

      angular.forEach(files, function (file) { 
       formData.append(file.name, file); 
      }); 


      return fileManagerClient.save(formData) 
             .$promise 
             .then(function (result) { 
              if (result && result.files) { 
               result.files.forEach(function (file) { 
                if (!fileExists(file.name)) { 
                 service.files.push(file); 
                } 
               }); 
              } 

              appInfo.setInfo({ message: "files uploaded successfully" }); 

              return result.value; 
             }, 
             function (result) { 
              appInfo.setInfo({ message: "something went wrong: " + result.data.message }); 
              return $q.reject(result); 
             }) 
             ['finally'](
             function() { 
              appInfo.setInfo({ busy: false }); 
              service.status.uploading = false; 
             }); 
     } 



     function remove(file) { 
      //Do Stuff 
         } 

     function fileExists(fileName) { 
      //Do Stuff 
     } 



    } 
})(); 
+0

: 감사 피트는 여기

내 공장 (간결함을 위해 생략 일부 코드)입니다 * like * $ q * – NNR

답변

0

그것은 당신이 일반적으로 종속성을 주입 같은 방법입니다,

fileManager.$inject = ['$rootScope','$q', 'fileManagerClient', 'appInfo'] 
function fileManager($rootScope,$q, fileManagerClient, appInfo) { 
+0

감사합니다 Sajeetharan, 나는이 일을 얻을 수있었습니다. – Pete

+0

도움이 되었다면 답을 표시해주세요. – Sajeetharan

관련 문제