私はここで少しトリッキーな状況に直面しています。アプリケーションがアクセスする必要がある 2 つのサービスがあります。1 つは純粋な ODATA サービスで、もう 1 つは WebAPI (Breeze コントローラーを使用) サービスです。
私のアプリケーションは AngularJS モジュールを中心に設計されており、そよ風は 2 つの異なる単一インスタンス サービスに注入されます。
angular.module('domiciliations.services').
factory('domiciliationService', function (breeze) {
breeze.config.initializeAdapterInstance("modelLibrary", "backingStore", true);
//more initialization goes here
//then query methods go here
}
と
angular.module('person.services').
factory('personService', function (breeze) {
breeze.config.initializeAdapterInstances({ "dataService": "OData" });
//more initialization goes here
//then query methods go here
}
明らかに問題は、個人サービスがインスタンス化されると、構成が上書きされたため、定住サービスが OData を使用することです。
では、この問題に取り組むための一般的なアプローチは何ですか? 構成を分離する方法はありますか? これまでのところ、クエリ メソッドが呼び出されるたびに initializeAdapterinstances メソッドを呼び出す方法しか考えられませんが、これはあまり望ましくありません。
編集
Jay の推奨に従って、私は現在 DataService を使用しています。ctor.resolve の行でエラーが発生しています。
ds.jsonResultsAdapter = ds.jsonResultsAdapter || ds.adapterInstance.jsonResultsAdapter;
ds.adapterInstance が null であるため、例外がスローされます。しかし、なぜそれがnullなのかわかりません。
これが私がやったことです:
var service = new breeze.DataService({
serviceName: 'http://localhost:16361/api/mandates',
adapterName: 'WebApi'
});
var manager = new breeze.EntityManager({ dataService: service });
//this is the line causing the later exception:
manager.fetchMetadata().then(function () { ... }
私は何かをするのを忘れましたか?