微风&角& MV *如何保存小孩的财产?
获得发票对象,并扩大它的必要特性:客户,详细信息等
要访问的细节特性是容易的,invoice.detail [N] .property。并且保存对现有属性(1 - n)的更改也很容易。在我的UI,我只是通过我的对象vm.invoice.details循环得到&显示现有的所有细节,结合他们的输入,编辑随意,调用调用SaveChanges(),完成了!
(记住,在这个UI,我需要完成以下过....)
现在,我有一个新的细节,我需要插入空白输入。
不过,我需要插入一个新的细节到的发票明细现有的阵列。
例如:发票#5具有3点的细节(细节[0],详细[1],详细[2])。我需要插入到这个现有的发票,细节[3],并调用saveChanges()
我试图调用manger.createEntity('invoice'),但它抱怨FK约束。我知道你可以通过值作为createEntity(“OBJ”,newvalues)第二个参数...但正确和唯一的方法?
看起来这应该都容易得多,但是,好,我很茫然,请帮助在那里你可以。 TIA!
谢谢你的优秀回复! 以下是我如何完成它: 在我的**控制器**中,我调用了一个如下所示的函数:var d = dataservice.createNewDetail(vm.invoice); d.SeqNumber =(vm.invoice.InvoiceDetails.length + 1); vm.invoice.InvoiceDetails.push(d);' 然后我的数据服务功能需要的不过是 'return manager.createEntity('InvoiceDetail')' 我最初按照你的建议接近它,看到我的OP(_I知道你可以在createEntity('obj',newvalues)中传递值作为第二个参数......但这是否正确且唯一的方法?_) – SSIDEV 2015-02-23 14:59:11
我可以接受你的答案吗?事实上,你的建议(虽然不同)会引发一个新问题:哪种方法是_correct_?我想这归结于你MV *环境中最好的效果。如果您发现我的方法存在缺陷或危险,请进一步告知。否则,我们可以称这个关闭。祝一切顺利! – SSIDEV 2015-02-23 15:06:09
在你的情况下,有一点轻微的差异是不重要的。如果您设置了nav属性,Breeze将确保父和子都处于相同的“EntityManager”中(如果不是,则抛出)。如果该发票存在于孩子的经理中,那么设置FK ID不会强加该测试,并且仅将新的子孩“Detail”连接到父母“发票”。鉴于你只有一位经理,这对你来说不是问题。选择最适合你的方法。 – Ward 2015-02-23 21:24:05