我正在使用Kendo网格,我将breeze元素绑定到其中
query = IncidentRepositoryService.getQueyObject(['Severity', 'eq', 'Normal']);
IncidentRepositoryService.getEntitiesByQuery(query).then(function(results) {
for (var i = 0; i < results.length; i++) {
unwrapped.push(results[i]._backingStore);
}
$scope.incidentDS.data($scope.grid.data);
});
当我从kendo添加了我从堆栈异常中获取的真实对象时,我不得不添加后备存储。我无法使用后备存储,因为我在breeze类型之上定义了属性,我需要绑定它们
答案 0 :(得分:0)
我知道这个答案有点迟了。但也许有人仍在寻找这个问题的答案。 您不能在Kendo Grid中使用Breeze Entity,因为它包含循环引用。 您可以使用实验Breeze Kendo Datasource或自己实现一个创建没有循环引用的对象的函数:
// Converts a breeze entity to a kendo data source item.
// Data properties are written to a new objects. Breeze entity
// is moved to __breezeEntity property.
function toKendoItem(entity) {
if (entity === null || entity === undefined) {
return entity;
}
var props = entity.entityType.dataProperties,
obj = {};
props.forEach(function (prop) {
obj[prop.name] = entity[prop.name];
});
obj.__breezeEntity = entity;
return obj;
}
query = IncidentRepositoryService.getQueyObject(['Severity', 'eq', 'Normal']);
IncidentRepositoryService.getEntitiesByQuery(query).then(function(results) {
for (var i = 0; i < results.length; i++) {
unwrapped.push(toKendoItem(results[i]));
}
$scope.incidentDS.data($scope.grid.data);
});