私はしばらくの間、そよ風と OData を使用しようとしています。
私の OData は別のサーバーから取得され、CORS が有効になっています。問題はそよ風と odata にあると思います。なぜなら、そよ風と Web API を使用してすべてをテストしたところ、問題なく動作したからです。
ネットワーク タブのクロムでは、OData が適切にフェッチされていることがわかりますが、何らかの理由でデータが表示されず、次の奇妙なエラーが発生します。
[Q] Unhandled rejection reasons (should be empty):
[Error]
q.js:891
Error: OK Logger.js:52
Here is my breeze DataService:
app.adminMuscleGroup.dataService = ( function(breeze, logger) {
breeze.config.initializeAdapterInstance("modelLibrary", "backingStore", true);
var service = new breeze.DataService({
serviceName: "http://localhost:23758/odata/",
hasServerMetadata: false,
});
breeze.config.initializeAdapterInstance("dataService", "OData");
var manager = new breeze.EntityManager({ dataService: service });
manager.enableSaveQueuing(true);
var dataService = {
getAll: getAll,
};
return dataService;
function getAll() {
var query = breeze.EntityQuery.from("MuscleGroup").orderBy("Name");
return manager.executeQuery(query);
}
Controller.js は次のとおりです。
app.adminMuscleGroup.controller('AdminMuscleGroupCtrl', function ($scope) {
var dataService = window.app.adminMuscleGroup.dataService;
var logger = window.app.logger;
$scope.items = [];
$scope.getAllMuscleGroups = function() {
dataService.getAll()
.then(querySucceeded)
.fail(queryFailed);
};
$scope.getAllMuscleGroups();
function querySucceeded(data) {
$scope.items = [];
data.results.forEach(function(item) {
$scope.items.push(item);
});
$scope.$apply();
logger.info("Fetched all Muscle Groups");
}
function queryFailed(error) {
logger.error(error.message, "Query failed");
}
})
コンソール ログのスクリーンショットを次に示します。