私が見つけることができるすべての情報 (Angular のドキュメントを含む) では、サービスをプロバイダーに挿入する$get
方法は次のメソッドを使用することです。
var myApp = angular.module('myApp', []);
myApp.provider('helloWorld', function() {
this.$get = function() {
return {
sayHello: function() {
return "Hello, World!"
}
}
};
});
function MyCtrl($scope, helloWorld) {
$scope.hellos = [helloWorld.sayHello()];
}
これは、 angular 1.2以下で完全に機能します: http://jsfiddle.net/1kjL3w13/
ただし、 angular 1.3に切り替えると、$get
機能が完全に壊れます。関数から返された$get
ものはプロバイダーのインスタンス化に使用されなくなったため、fe サービスの注入には使用できなくなったようです。
上記と同じ例ですが、angular 1.3を使用しています: http://jsfiddle.net/duefnz47/
これは、Angular ドキュメントで提供されている動作とまったく同じです。したがって、ドキュメントが間違っているか、完全に誤解しています。メソッドが以前と同じように機能するかどうかはあまり気にしませんが$get
、プロバイダーにサービスを確実に注入できるようにする必要があるだけです。