2017-08-18 21 views
0

私は現在、AngularJs 1.4.6をベースにしています。角度1.5.11に移行しました。その結果Angular-UIもアップグレードする必要があります。 angularUIのブートストラップをバージョン0.14.3にアップグレードすると、プレフィックスの名前が変更されました。以前は$modal & $modalInstanceでした。現在は$uibModal & $uibModalInstanceです。Angualr Jsで複数のサービスの名前を変更するにはどうすればよいですか?

コントローラでこのサービスを使用するための以前の構文は、このでした:今$モーダルと$ modalInstance

angular.module('main').controller('mainctrl',function($scope,$modal...) { 

$scope.open = function() { 
     var modalInstance = $modal.open({ 
      templateURL: 'modal.html', 
      controller: 'modalCtrl', 
      size : 'md', 
      resolver : { 
       data: function() { 
        return $scope.items; 
       } 
      } 
     }) 
     modalInstance.result.then(function() {}, function() {}); 
    } 
    }); 
angular.module('main').controller('modalCtrl',function($scope,$modalInstance,data) { 
console.log(data); 
}); 

このサービスは50+以上のコントローラで使用され、何度も呼び出されているので、両方の を推奨されていません。私はこのサービスの名前を変更するのではなく、名前を変更することを考えました。ここで

は、私がやったことだ:

.factory('$modal',function($uibModal){ 
return $uibModal; 
}); 

し、必要なコントローラに注入:私は$ modalInstanceのために同じことをやったとき

angular.module('main',function($scope,$modal...) { 
/** 
}); 

は今deprication警告がモーダル$のために来ていないが、警告が来ています。 Deprecation warning ここに私が実装されたコードです:

.factory('$modalInstance',function($uibModalInstance){ 
return $uibModalInstance; 
}); 

を、どのように私はこれを解決することができますか?私はまた、プレフィックスが変更された20以上のサービスについてこれを行う必要があります。私は20のファクトリメソッドを作成する必要がありますか、それとも別の方法で行うことができますか?

答えて

0

これは、実際に使用されていることについて誰かが混乱する可能性がある、長期的には良くありません。また、$ modalInstanceと同じ名前のファクトリがあると、不安定な結果になることがあります(このファクトリは、警告メッセージに表示されているように、angularUIにはまだ存在しています)。

私は単純な解決策 "Find & Replace"を好むでしょう、それはもう一度考え直す必要はありません。

関連する問題