我已经尝试使用微风和 OData 一段时间了。
我的 OData 来自另一台服务器,并且启用了 CORS。我相信问题出在微风和 odata 上,因为我已经使用微风和 web api 测试了所有内容,并且效果很好。
在网络选项卡中的 chrome 中,我看到 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");
}
})
这是控制台日志的屏幕截图: