通常、サービスはコントローラに注入されます。コントローラをサービスに挿入するにはどうすればいいですか?
controller.js
angular
.module('myApp')
.factory('myService', function($http){
var myService = {
get: get
};
return myService;
function get(){
// Get function.
}
});
service.js
しかし、道を逆にすることは可能でしょうか?コントローラをサービスに挿入するには?
あなたがしたいと思うのはなぜ?私はどのシナリオでこれが役に立つのか分かりません。 –
私は角材料 'mdDialog'を使っていますが、私はコントローラのきれいな構造を求めています。基本的に 'mdDialog'はctrl1で呼び出され、' mdDialog'テンプレートは 'ctrl1'と同じコントローラの中にあり、' mdDialog'で提供されたコントローラは別のファイルにありたいので入れたいです他のコントローラがそれを使用できるように、サービス内のmdDialogこれはコードを効果的に再利用するのに役立ちます。 –
サービスにコントローラを挿入する代わりに、コントローラにある機能を別のサービスにエクスポートし、サービスに注入します。たとえば、コントローラCに機能Aがあり、サービスSに注入したい場合は、機能AをServiceAにエクスポートしてからServiceAをSに挿入します。 – Dimitri