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();