9

I would like te pass a variable to a factory of mine, but im not quite sure how to do it, here is my code:

var app = angular.module('docFinder', []);

app.factory('docFactory', function($http) {
  var url = 'http://test.example.com?queryString=searchv2&page='; 
  url=url+page;
  var docFactory = {
    async: function() {
      var promise = $http.get(url).then(function (response) {
        return response.data;
      });
      return promise;
    }
  };
  return docFactory;
});

app.controller('docTable', function(docFactory, $scope, $filter) {

    docFactory.async().then(function(d) {   
        $scope.providers = d;       
        init();
    });

}

i would like to send the page from my controller to my factory so it can return my new query

thanks

2 Answers 2

13

You can pass the value through your async function in your factory:

var docFactory = {
    async: function(theVarThatIWantedToPass) {
        var url=//   stuff
        url += theVarThatIWantedToPass;
    }
}

Called as normal: docFactory.async(page)

Sign up to request clarification or add additional context in comments.

Comments

-1

That is because i would like to have one factory to generate and open pdf files and many controllers each passing his own url and filenames, to keep the controllers thin.

This is the factory from nic raboy tutorial https://blog.nraboy.com/2014/09/manage-files-in-android-and-ios-using-ionicframework/ that uses file-transfer and inappbrowser cordova plugins :

.factory('pdf-service', function($scope, $ionicLoading){

if( window.cordova && window.cordova.InAppBrowser ){
    window.open = window.cordova.InAppBrowser.open;
    console.log("InAppBrowser available");
  } else {
    console.log("InAppBrowser not available");
  }

  $scope.download = function() {
    $ionicLoading.show({
      template: 'Loading...'
    });
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
      fs.root.getDirectory("ExampleProject",{create: true},
          function(dirEntry) {
                dirEntry.getFile(
                    "pdf-number-1.pdf", 
                    {
                        create: true, 
                        exclusive: false
                    }, 
                    function gotFileEntry(fe) {
                        var p = fe.toURL();
                        fe.remove();
                        ft = new FileTransfer();
                        ft.download(
                            encodeURI("http://www.someservice.com"),
                            p,
                            function(entry) {
                                $ionicLoading.hide();
                                $scope.imgFile = entry.toURL();
                            },
                            function(error) {
                                $ionicLoading.hide();
                                alert("Download Error Source -> " + error.source);
                            },
                            false,
                            null
                        );                        
                    }, 
                    function() {
                        $ionicLoading.hide();
                        console.log("Get file failed");
                    }
                );
            }
        );
    },
    function() {
        $ionicLoading.hide();
        console.log("Request for filesystem failed");
    });
  }

    $scope.load = function() {
      $ionicLoading.show({
        template: 'Loading...'
      });

      window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
          fs.root.getDirectory(
              "ExampleProject",
              {
                  create: false
              },
              function(dirEntry) {
                  dirEntry.getFile(
                      "pdf-number-1.pdf", 
                      {
                          create: false, 
                          exclusive: false
                      }, 
                      function gotFileEntry(fe) {
                          $ionicLoading.hide();
                          $scope.imgFile = fe.toURL();
                          alert(fe.toURL());
                          window.open(fe.toURL(), '_system', 'location=no,toolbar=yes,closebuttoncaption=Close PDF,enableViewportScale=yes');
                      }, 
                      function(error) {
                          $ionicLoading.hide();
                          console.log("Error getting file");
                      }
                  );
              }
          );
      },
      function() {
          $ionicLoading.hide();
          console.log("Error requesting filesystem");
      });
    }
});

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.