2016-11-27 4 views
0

私のAngularJS 1(+ Ionic)アプリケーションは、さまざまなタイプのデータ(Employee、Company、...)を処理しており、それぞれのタイプとビューに対して1つのコントローラがあります。

現在、コントローラ間には同じコードが多数あります。たとえば、確認のためにモーダルダイアログボックスでエンティティを削除するために使用される以下のコードがあります。

私はこれを1つの関数やサービスなどに因数分解したいと思いますが、各コントローラから呼び出すことはできますが、このコードでは$ scope、$ ionicModal、$ ionicHistoryを使用しているため、

進め方を教えてください。どうもありがとう!

$ionicModal.fromTemplateUrl("templates/delete-modal.html", { 
    scope: $scope 
}).then(function(modal) { 
    $scope.modal = modal; 
    $scope.text = "Delete entity?"; 
}); 

$scope.delete = function() { 
    $scope.modal.show(); 
} 
$scope.doDelete = function() { 
    $scope.modal.hide(); 
    databaseService.remove($scope.entity); 
    $ionicHistory.goBack(-2); 
} 
$scope.doCancel = function() { 
    $scope.modal.hide(); 
} 

答えて

1

この場合、$scopeをサービスメソッドに渡すことができます。 $ionicModalおよび$ionicHistoryを注入する必要があります。

$ionicModal$ionicHistoryを挿入するサービスを作成します。引数として$scopeを取り入れて、サービス上にメソッドを定義しました。

各コントローラで、$scopeをサービスメソッドのそれぞれの機能に渡します。

+0

素晴らしい作品です。ありがとうございます! – bfredo123

関連する問題