【问题标题】:breezejs - How to initiate complex type properties when creating a new Entity微风js - 创建新实体时如何启动复杂类型属性
【发布时间】:2013-07-09 01:26:37
【问题描述】:

假设有一个人类型,它具有一些复杂的属性,例如 Address 和 dateOfBirth

我用这段代码创建了一个新的人实体:

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

如何启动复杂类型以便将其绑定到空白表单? 在微风文档中它说:http://www.breezejs.com/documentation/complextype-properties

这其实有点不对,可以创建一个‘unbound’ 使用 complexType.createInstance 方法的 complexType 实例 但是当你分配它时,你只是将它的值复制到一个 现有实例。

启动复杂类型属性的最佳位置在哪里?任何示例代码都会很有帮助。

【问题讨论】:

  • 我将复杂类型与导航属性混合在一起。以更好的方式提出问题:在创建新实体时启动导航属性的最佳方式是什么?

标签: breeze complextype


【解决方案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);

【讨论】:

  • 感谢您的回答。我想知道 SPA JumpStart 如何在 github.com/johnpapa/PluralsightSpaJumpStartFinal 上处理这个概念。似乎作者 johnpapa 介绍了一种名为 createNullos 的方法,这可能是一个有趣的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
  • 2014-06-22
  • 1970-01-01
  • 2013-05-17
  • 2013-04-22
  • 1970-01-01
  • 2013-07-04
相关资源
最近更新 更多