breezejs在创建新实体时获取元数据

时间:2013-04-22 09:40:49

标签: angularjs metadata breeze

当我拨打以下代码时:

function createMandat (initialValues) {
        return manager.createEntity('Mandate');
}

失败,因为'Mandate'类型未知。我理解,因为当我调用此函数时,我还没有获取该类型的任何实体。

所以我的问题是,如果metadataStore不知道某种类型,我怎么能强制往返服务器才能获得这种类型的元数据?我的代码中最好的地方是什么?

1 个答案:

答案 0 :(得分:2)

您可以调用 manager.fetchMetadata ,然后在承诺解析后执行 createEntity 调用。

 manager.fetchMetadata().then(function() {
    var newMandate = manager.createEntity("Mandate");
    ...
 });

如果首先执行查询,则不需要执行此操作,因为如果在执行查询之前无法找到元数据,则查询执行会隐式执行fetchMetadata。所以以下内容也可以。

manager.executeQuery(myQuery).then(function(data) {
    results = data.results;
    var newMandate = manager.createEntity("Mandate");
    ...
 });