Breeze调用executeLocally时清空数据
Breeze empty data when calling executeLocally
我正在使用以这种形式发送简单数据的节点 restful 服务器:
[{id:1, note:"blah blah"}]
我遵循了 no-server 的示例,其中一个使用 JsonResultsAdapter,另一个使用 MetadataHelper,尝试了两种方法,但都失败了。我使用 bower 安装库:
"breeze-client": "^1.5.6" 和 "breeze-client-labs": "^1.5.8",
我按照Debugging query result 的教程通过了整个测试,但是没有什么breeze不会在服务器下载数据后具体化。
一些代码:
var serviceRoot = window.location.protocol+ '//' + window.location.host + '/';
this.serviceName = serviceRoot + 'api/';
this.defaultNamespace = 'models';
var ds = new breeze.DataService({
serviceName: this.serviceName,
hasServerMetadata: false
});
var manager = new breeze.EntityManager({dataService : ds});
var meta = manager.metadataStore;
var DT = breeze.DataType;
var keyGen = breeze.AutoGeneratedKeyType.Identity;
this.helper = new breeze.config.MetadataHelper(this.defaultNamespace, keyGen);
this.helper.addDataService(meta, serviceName);
var entityType = {
name: lookups,
autoGeneratedKeyType: breeze.AutoGeneratedKeyType.None,
dataProperties: {
id: {type: DT.Int32},
note: {maxLength: 50, isNullable: false}
}
};
this.helper.addTypeToStore(meta, entityType);
调用服务器,我看到带有 json 负载的网络流量,然后 breeze 将 entityAspect 应用于数据,并在使用此查询时将 EntityType 与其相关联。
breeze.EntityQuery.from('users/lookups')
.using(this.manager).execute()
.then(this.querySucceeded)
.catch(this.queryFailed);
现在,当我调用获取兑现数据时,使用此查询我什么也得不到一个空数组:
breeze.EntityQuery.from('Lookups)
.using(this.manager)
.executeLocally();
我很迷茫,不明白为什么它不起作用。
最后我通过将 defaultResourceName 的 属性 添加到 entityType 定义中来让它工作
var entityType = {
name: 'Lookup',
defaultResourceName: 'users/lookups' ,
autoGeneratedKeyType: breeze.AutoGeneratedKeyType.None,
dataProperties: {
id: {type: DT.Int32},
note: {maxLength: 50, isNullable: false}
}
};
而且我使用 'Lookup' 调用查询而不是复数形式
breeze.EntityQuery.from('Lookup)
.using(this.manager)
.executeLocally();
我正在使用以这种形式发送简单数据的节点 restful 服务器:
[{id:1, note:"blah blah"}]
我遵循了 no-server 的示例,其中一个使用 JsonResultsAdapter,另一个使用 MetadataHelper,尝试了两种方法,但都失败了。我使用 bower 安装库:
"breeze-client": "^1.5.6" 和 "breeze-client-labs": "^1.5.8",
我按照Debugging query result 的教程通过了整个测试,但是没有什么breeze不会在服务器下载数据后具体化。 一些代码:
var serviceRoot = window.location.protocol+ '//' + window.location.host + '/';
this.serviceName = serviceRoot + 'api/';
this.defaultNamespace = 'models';
var ds = new breeze.DataService({
serviceName: this.serviceName,
hasServerMetadata: false
});
var manager = new breeze.EntityManager({dataService : ds});
var meta = manager.metadataStore;
var DT = breeze.DataType;
var keyGen = breeze.AutoGeneratedKeyType.Identity;
this.helper = new breeze.config.MetadataHelper(this.defaultNamespace, keyGen);
this.helper.addDataService(meta, serviceName);
var entityType = {
name: lookups,
autoGeneratedKeyType: breeze.AutoGeneratedKeyType.None,
dataProperties: {
id: {type: DT.Int32},
note: {maxLength: 50, isNullable: false}
}
};
this.helper.addTypeToStore(meta, entityType);
调用服务器,我看到带有 json 负载的网络流量,然后 breeze 将 entityAspect 应用于数据,并在使用此查询时将 EntityType 与其相关联。
breeze.EntityQuery.from('users/lookups')
.using(this.manager).execute()
.then(this.querySucceeded)
.catch(this.queryFailed);
现在,当我调用获取兑现数据时,使用此查询我什么也得不到一个空数组:
breeze.EntityQuery.from('Lookups)
.using(this.manager)
.executeLocally();
我很迷茫,不明白为什么它不起作用。
最后我通过将 defaultResourceName 的 属性 添加到 entityType 定义中来让它工作
var entityType = {
name: 'Lookup',
defaultResourceName: 'users/lookups' ,
autoGeneratedKeyType: breeze.AutoGeneratedKeyType.None,
dataProperties: {
id: {type: DT.Int32},
note: {maxLength: 50, isNullable: false}
}
};
而且我使用 'Lookup' 调用查询而不是复数形式
breeze.EntityQuery.from('Lookup)
.using(this.manager)
.executeLocally();