2017-09-26 20 views
0

私は既存の角度ファクトリを持っていますが、私の角度コントローラに$リソースの結果を渡す必要があるいくつかの新しいコードを挿入する際に問題があります。私は以下の "sendFilesToController()"関数でこれをしようとしています。私は構文がわからない。どんな助けもありがとうございます。工場から角度コントローラにデータを渡します

おかげで、

ピート

私の工場はこのようになります

(function() { 
    'use strict'; 

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


    fileManager.$inject = ['$q', 'fileManagerClient', 'appInfo', 'sharedPropertiesSvc', 'FileSvc', '$location', 'growl', ]; 

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

     return service; 

     function load() { 
      appInfo.setInfo({ busy: true, message: "loading files" }) 

      service.files.length = 0; 

      return fileManagerClient.query() 
           .$promise 
           .then(function (result) { 
            result.files 
              .forEach(function (file) { 
               service.files.push(file); 
              }); 

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

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

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

              item.OversightId = oversightId; 
              FileSvc.update({ Id: oversightId }, item).$promise.then(function (response) { 
               var x = 5; 


               sendFilesToController(id); 


              }); 

              return result.$promise; 
             }, 
             function (error) { 
              appInfo.setInfo({ message: "something went wrong: " + error.data.message }); 
              sharedPropertiesSvc.setDuplicateFileSwitch(true); 
              sharedPropertiesSvc.setDupFileMsg(error.data.error.message); 

              var url = '/oa/?id=' + oversightId; 
              $location.url(url); 

              return $q.reject(error); 
             }) 
             ['finally'](
             function() { 
              appInfo.setInfo({ busy: false }); 
              service.status.uploading = false; 
             }); 
     } 

     function sendFilesToController(id) { 
      //appInfo.setInfo({ busy: true, message: "deleting file " + file.ImageName }); 


      return { 

       sendFiles: function() { 

        //return FileSvc.getById({ Id: oversightId }).$promise.then(function (response) { 
        //}); 
        var files = {}; 
        FileSvc.getById({ Id: id }).success(function (response) { 
         angular.copy(response, files); 
        }); 
        return files; 
       } 

     } 


     } 

    } 
})(); 

、私のコントローラで私はこれを持って

:あなたは誤解

$scope.files = fileManagerClient.sendFiles(response); 

答えて

0

工場とcontr ollerの使用....

=>

工場を定義するには、その後、工場を注入=>あなたは

angular.module('myExample', []) 
    .controller('myCtrl', function($scope, Factory) { 

     console.log('Factory', Factory.word); 
    }); 

// factory 
angular.module('myExample') 
    .factory('Factory', function() { 
    var factory = { }; 
    factory.word = 'example'; 
    return factory; 
}) 
+0

をしたいコントローラへのあなたのヨセフをありがとうございます。私はあなたが言っていることを理解しています。しかし、私はすでに存在する特定のコードでそれを行う方法がわかりません。 – Pete

+0

ちょうど工場を注入し、サービスを使用すると、工場はあなたのための共通のlibだと思うことができます –

+0

私がここで本当にしたいのは、工場で$ scope.item.Filesに返されたファイルをバインドすることです。 – Pete

関連する問題