我想将变量传递给我的工厂,但我不太清楚该怎么做,这是我的代码:
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();
});
}
我想将页面从我的控制器发送到我的工厂,以便它可以返回我的新查询
感谢
答案 0 :(得分:13)
您可以通过工厂中的async
功能传递值:
var docFactory = {
async: function(theVarThatIWantedToPass) {
var url=// stuff
url += theVarThatIWantedToPass;
}
}
称为正常: docFactory.async(页)
答案 1 :(得分:-1)
这是因为我希望有一个工厂来生成和打开pdf文件,并且许多控制器都传递自己的url和文件名,以保持控制器的精简。
这是来自nic raboy教程https://blog.nraboy.com/2014/09/manage-files-in-android-and-ios-using-ionicframework/的工厂,它使用文件传输和inappbrowser cordova插件:
.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");
});
}
});