breezejs — Как инициировать свойства сложного типа при создании нового объекта

Предположим, что есть тип человека, который имеет некоторые сложные свойства, такие как Address и dateOfBirth.

Я создал новую сущность человека с этим кодом:

 newPerson(manager.createEntity("Person",{ id: breeze.core.getUuid() }));

Как я могу инициировать сложный тип, чтобы я мог привязать его к пустой форме? В документе breeze говорится: http://www.breezejs.com/documentation/complextype-properties< /а>

На самом деле это немного неправильно, вы можете создать «несвязанный» экземпляр complexType с помощью метода complexType.createInstance, но когда вы его назначаете, вы просто копируете его значения в существующий экземпляр.

Где лучше всего инициировать свойства сложного типа? Любой пример кода будет очень полезен.


person Mohammad HS Farvashani    schedule 09.07.2013    source источник
comment
Похоже, я смешиваю сложный тип со свойствами навигации. чтобы лучше задать вопрос: как лучше всего инициировать свойства навигации при создании нового объекта?   -  person Mohammad HS Farvashani    schedule 09.07.2013


Ответы (1)


Если вы имеете дело со скалярным навигационным свойством, т.е. навигационным свойством, которое возвращает один экземпляр другого объекта, то вы можете сделать это прямо в вызове createEntity

 newDetail = manager.createEntity("OrderDetail", { Order: parentOrder, Product: parentProduct });

Если вы имеете дело с нескалярным (т. е. массивным) свойством навигации, вам нужно будет вставить дочерние элементы в свойство навигации. то есть

 newCustomer = em.createEntity("Customer");
 var orders = newCustomer.getProperty("Orders"); 
 orders.push(order1);
 orders.push(order2);
 // OR
 // orders.push.apply(orders, ordersToPush);
person Jay Traband    schedule 09.07.2013
comment
Спасибо за ответ. Мне было интересно, как SPA JumpStart справляется с этой концепцией на github.com/johnpapa/PluralsightSpaJumpStartFinal. похоже, что автор johnpapa представляет метод createNullos, который может быть интересным решением. - person Mohammad HS Farvashani; 10.07.2013