我有一个带有OData EntitySetController的.net 4.5 Web Api
在客户端,我收到了以下js文件
jquery.min.js
q.min.js
datajs-1.1.1.min.js
breeze.debug.js
toastr.min.js
angular.js
当我调用以下javascript
时breeze.config.initializeAdapterInstance("dataService", "OData");
var manager = new breeze.EntityManager(serviceName);
var query = breeze.EntityQuery.from("Customers");
return manager.executeQuery(query).then(success).fail(fail);
function success(data) {
$log.info("Retrieved " + data.results.length);
return data.results;
}
function fail(data) {
$log.info("error " + data);
}
我在我的chrome网络标签中看到以下内容,显示元数据,json数据很好地回来了......
Request URL:http://localhost:49971/odata/$metadata
Status Code:200 OK, 1.8KB
Request URL:http://localhost:49971/odata/Customers
Status Code:200 OK, 3.3KB
但是成功回调永远不会触发,失败回调会被执行。有人可以帮忙吗?我所看到的只是
XHR finished loading: "http://localhost:49971/odata/$metadata". datajs-1.1.1.min.js:14
XHR finished loading: "http://localhost:49971/odata/Customers". datajs-1.1.1.min.js:14
[Q] Unhandled rejection reasons (should be empty):
[Error]
length: 0
__proto__: Array[0]
q.js:1010
error Error: OK
然后我需要将这些数据绑定到ng-grid,ng-form,然后最终将它们发送回数据库到服务器端......
更多代码和屏幕截图
breeze.EntityQuery
.from("AddressTypes")
.using(new breeze.EntityManager(serviceName))
.execute()
.then(function(data) {
console.log(data); // never gets here very wierd
}).fail(function(e) {
console.log(e); // shows an error object with the AddressType Array
});
我在失败回调中看到AddresTypes数组...
更新:我在后端暂时切换到BreezeContoller而不是EntitySetController,并注释掉了breeze.config.initializeAdapterInstance("dataService", "OData");
我在successCb中得到了我的数组。所以我想我可以推断我遇到了DataJS的问题。真的很想坚持使用EntitySetController ......
答案 0 :(得分:1)
我遇到了同样的问题。 事实证明,回到datajs 1.0.3似乎有效。 但是,这样做会导致$ expand无法正常工作(服务器正常工作,但是微风不会处理导航属性 - >无论多重性如何)。
我必须说,我很难找到 STABLE breezejs。