typescript와 함께 breeze로 연주하고 있습니다.데이터 속성을 사용하는 addentitytype 배열이 작동하지 않습니다.
var eto = <breeze.EntityTypeOptions>new Object();
eto.shortName = "type1";
eto.namespace = "mod1";
eto.dataProperties = new Array();
eto.autoGeneratedKeyType = breeze.AutoGeneratedKeyType.Identity;
var dpo = <breeze.DataPropertyOptions>new Object();
dpo.name = "id";
dpo.dataType = breeze.DataType.Int32;
dpo.isNullable = false;
dpo.isPartOfKey = true;
var dp = new breeze.DataProperty(dpo);
eto.dataProperties.push(dp);
dpo = <breeze.DataPropertyOptions>new Object();
dpo.name = "prop1";
dpo.dataType = breeze.DataType.Int32;
dpo.isNullable = false;
dpo.isPartOfKey = false;
dp = new breeze.DataProperty(dpo);
eto.dataProperties.push(dp);
var et = new breeze.EntityType(eto);
store.addEntityType(et);
store.registerEntityTypeCtor(et.shortName, type1);
그러나 다음 줄은 실패 : 나는 다음과 같은 타이프 스크립트 코드를 사용하여 유형을 만들려고하고있는 "dataProperties는"배열 인 경우에 문제가있는 것처럼
store.addEntityType(et);
이 같이 보입니다 경우 대신 객체의 ... 내가 뭔가 잘못하고있는 중이 야 의심 그래서 난 자바 스크립트 초보자입니다 ...하지만 내 의심의 위입니다 특별히 행 아래 바람 코드 :
propObj.forEach(entityType.addProperty);
은 addProperty 메소드의 구현이 "this"컨텍스트를 사용하기 때문에 절대로 작동하지 않을 것입니다. 다시 한번 말하지만, 나는 틀린 것 같습니다. 어떤 경우에는 somone이 저에게 손을 줄 수 있다면 감사 할 것입니다. 당신에게 감사
// Used by both ComplexType and EntityType
function addProperties(entityType, propObj, ctor) {
if (!propObj) return;
if (Array.isArray(propObj)) {
propObj.forEach(entityType.addProperty);
} else if (typeof (propObj) === 'object') {
for (var key in propObj) {
if (__hasOwnProperty(propObj, key)) {
var value = propObj[key];
value.name = key;
var prop = new ctor(value);
entityType.addProperty(prop);
}
}
} else {
throw new Error("The 'dataProperties' or 'navigationProperties' values must be either an array of data/nav properties or an object where each property defines a data/nav property");
}
}