breeze中的manager.fetchMetadata()错误
我的目标是创建一个新类型的新实体,并将其推给经理 我已创建了新的实体类型:breeze中的manager.fetchMetadata()错误,breeze,Breeze,我的目标是创建一个新类型的新实体,并将其推给经理 我已创建了新的实体类型: var newType = new breeze.EntityType({ shortName: "input" }); 为了能够创建此类型的新实体,我需要首先获取元数据: var entityManager = new breeze.EntityManager('api/Db'); entityManager.fetchMetadata(success, failed); func
var newType = new breeze.EntityType({
shortName: "input"
});
为了能够创建此类型的新实体,我需要首先获取元数据:
var entityManager = new breeze.EntityManager('api/Db');
entityManager.fetchMetadata(success, failed);
function success(){
var newEntity = entityManager.createEntity('input', {});
}
function failed(){}
问题是,我在entityManager.fetchMetadata()行上有一个错误:“TypeError:无法调用未定义的方法'then'”
为什么我会看到这个错误
fetchMetadata()是否尝试从某处获取http:元数据?我哪儿都没有。。那么如何创建元数据呢
更新:
我已将代码改写为以下建议:
//create new entity type
var newType = new breeze.EntityType({
shortName: "input",
autoGeneratedKeyType: breeze.AutoGeneratedKeyType.KeyGenerator
});
//add property
var info = new breeze.DataProperty({
name: "text",
dataType: breeze.DataType.String,
isNullable: true,
isPartOfKey: true,
maxLength: 20
});
newType.addProperty(info);
//create metadata on fly
var metadataStore = new breeze.MetadataStore();
metadataStore.addEntityType(newType);
var dataService = new breeze.DataService({
serviceName: 'isdataservice',
hasServerMetadata: false
});
var entityManager = new breeze.EntityManager({
dataService: dataService,
metadataStore: metadataStore
});
//create entry
var entity = entityManager.createEntity('input', { name: "nnn" });
Breeze元数据是关于您必须使用的所有对象的信息。您可以从服务器端获取元数据,也可以自己创建元数据并使用它 如果要在breeze中使用服务器端对象,可以使用
var entityManager=new breeze.entityManager('api/Db')创建一个实体管理器代码>其中api/db是您的asp.net控制器。此控制器应该有一个Metadata()
方法,该方法返回repository.Metadata()
。在js中调用entityManager.fetchMetadata(),然后(成功,失败)
解决了fetchMetadata()
的承诺后,变量entityManager
的breeze元数据已满,您可以开始使用breeze在js中处理服务器端对象
但是您也可以在不使用服务器端任何元数据的情况下工作,并在js代码中动态创建元数据。您可以创建自己的元数据存储,并将其附加到entitymanager。伪代码:
var myMetadataStore = new breeze.MetadataStore();
myMetadataStore.addEntityType({...});
var dataService = new breeze.DataService({
serviceName: 'demo',
hasServerMetadata: false
});
var entityManager = new breeze.EntityManager({
dataService: dataService,
myMetadataStore: store
});
var entity = manager.createEntity(...);
下面是来自breeze的一个工作示例,其中包含动态元数据
您可以单击“代码”按钮或直接去查看源代码
还可以查看breeze文档中的此链接