イオンフレームワークを使用してアンドロイドモバイルにネストされたフォルダを作成する必要があります。 問題は非同期であるため、最初のフォルダーを終了する前に、フォルダーがまだ作成されていないため、最初のフォルダー内に2番目のフォルダーを作成するコードの下に移動します。CordovFile依存関係のネストされたフォルダを作成する
私はそれが角の$ qサービスで動くことができると私はそれを試してみましたが、私はそれを試したが、動作していない、正直なところ私のコードは以下のとおりです。
コントローラ
if($scope.projectDetails.clientId == null && $scope.projectDetails.locationId == null){
// insert a row in client table
var parameters=[$scope.projectDetails.clientName];
NewProject.insertClient(parameters).then(function(result){
$scope.projectDetails.clientId = result.insertId;
// create folder with this name in Renewate folder
ProjectCreated.createFolder("Renewate",$scope.projectDetails.clientName).then(function(resolve){
// create new location
var parameters=[$scope.projectDetails.clientId, $scope.projectDetails.locationName];
NewProject.insertLocation(parameters).then(function(result){
$scope.projectDetails.locationId = result.insertId;
// create folder with this name in Renewate folder
var folderPath = "Renewate"+"/"+$scope.projectDetails.clientName;
ProjectCreated.createFolder(folderPath, $scope.projectDetails.locationName).then(function(resolve){
var parameters=[$scope.projectDetails.projectName, $scope.projectDetails.locationId];
NewProject.insertProject(parameters).then(function(result){
$scope.projectDetails.projectId = result.insertId;
var folderPath = "Renewate"+"/"+$scope.projectDetails.clientName+"/"+$scope.projectDetails.locationName;
ProjectCreated.createFolder(folderPath, $scope.projectDetails.projectName).then(function(resolve){
//$state.go('renewate3');
});
});
});
});
});
});
}
サービス
createFolder: function(folderPath, folderName){
var q = $q.defer();
$ionicPlatform.ready(function() {
$cordovaFile.createDir(cordova.file.externalRootDirectory+folderPath, folderName, true)
.then(function (success) {
q.resolve(result);
},
function (error) {
q.reject(error);
alert("error");
});
});
return q.promise;
},
私は間違っていますどこ私に知らせてください。
あなたはコードに関して読んだことを読んで理解していますが、修正するつもりですが、フォルダ作成のリクエストが送信されると、以下のコードの実行を開始して機能を終了します。 exit function – sandeepKumar
前回の約束が解決された場合にのみコードが実行されますので、フォルダが実際に作成される前に '$ cordovaFile.createDir'が解決されない限り、あなたが言ったように続けることはできません。私が提案したものを試しましたか? 'createFolder'関数の変更方法を見てください。 –
問題解決済み – sandeepKumar