「App.API」というモジュールで定義された角度のセットが、$resource
生成されているため触れることができない単一のファイルにあります。(loopback-angular
サーバー側のモデル定義から angular $resource を生成するツール)
依存関係を例として取りましょうProduct
。アプリの後半で、次のようにそのプロトタイプをオーバーライドしたいと思います。
module('App.NewModule', ['App.API']).run(['Product', function(Product) {
Product.prototype.getTitle = function() {
return 'Product name is ' + this.name;
};
// From now on I can use p.getTitle() on every Product $resource
});
できます。
問題は、それぞれがモジュールを含む多くの異なるファイルがあり、依存性注入の問題が発生していることです。内部のgetTitle
関数にアクセスできますが、他のモジュールのNewModule
内部ではアクセスできません。
質問: 依存オブジェクトのプロトタイプをオーバーライドして、他のモジュールで使用できるようにするにはどうすればよいですか?
プロトタイプが変更されると考えて、代わりにこのようにプロトタイプ関数を定義しようとしましProduct
た。たぶん十分に早くない:
module('App.API').run(['Product', function(Product) {
Product.prototype.getTitle = function() {
return 'Product name is ' + this.name;
};
});
機能しません:オブジェクトが正しく注入されている場合でもgetTitle
、インスタンスの別のモジュール (依存関係として App.API/Product を使用) で使用すると、エラーProduct
がスローされます。undefined is not a function
Product