我正在使用 Breeze 进行数据访问的SPA。我想尽快创建一个元数据实例,并且我想在完成初始化后之后将其命名为:

var manager = new entityModel.EntityManager(serviceName);

但是,实体管理器需要向Web api Controller 执行Ajax请求以加载元数据,并且如果在完成之前尝试manager.metadataStore.getEntityType("EntityName"),则会得到:
Uncaught Error: Unable to locate an 'Type' by the name

我的问题是是否存在加载元数据时触发的事件?我在文档中徘徊,但似乎找不到。

最佳答案

没有事件,但是您可以自己调用MetadataStore.fetchMetadata方法,并在promise的“then”部分中执行您的逻辑。

对每个服务器的第一个查询(如果尚未调用)将在内部自动调用MetadataStore.fetchMetadata方法。

因此,只需在第一个查询之前自己调用MetadataStore.fetchMetadata即可。

希望这是有道理的。

09-25 18:07