我正在编写cordova + angular + breeze应用程序,其中来自元素的文本信息应存储在包装该应用程序的浏览器中。 Accordind to the docs为此,首先我需要在微风中创建新的实体类型。我执行以下操作:

var entityManager = new breeze.EntityManager("api/Northwind");
var newType = new breeze.EntityType({
    shortName: "input"
});


接下来,我尝试创建这种类型的新实体:

var newEntity = newType.createEntity();


这将失败,并显示消息:“ TypeError:无法读取未定义的属性'_ctorRegistry'”

似乎是微风的非常基本的功能,但是我已经两天不能使用它了。有人可以帮我吗?

最佳答案

创建新的EntityType之后,应将其附加到metadataStore以创建新类型的实体。您的代码应如下所示:

var metadataStore = new breeze.MetadataStore();
entityManager= new breeze.EntityManager({
            serviceName: "api/db",
            metadataStore: metadataStore
        });

// if you call fetchMetadata()
entityManager.fetchMetadata().then(function(){
    var newType = new breeze.EntityType({
        shortName: "input"
    });

    entityManager.metadataStore.addEntityType(newType);

    newType.createEntity(...);
    // ...
});

//or just use var metadataStore
var newType = new breeze.EntityType({
    shortName: "input"
});

entityManager.metadataStore.addEntityType(newType);

newType.createEntity(...);
// ...

10-05 22:31