Breeze & Угловой & MV *Как сохранить дочерние свойства?
я получаю объект счета и расширить это необходимые свойства: Customer, Деталь и т.д.
Чтобы получить доступ к детализации свойств легко, invoice.detail [п] .Property Свойства. И сохранить изменения в существующих свойствах (1 - n) также легко. В моем пользовательском интерфейсе я просто прокручиваю свой объект vm.invoice.details, чтобы получить & отображение всех существующих деталей, привязать их к входам, отредактировать по желанию, вызвать saveChanges(), сделать!
(имейте в виду, в этом интерфейсе, мне нужно выполнить следующие действия тоже ....)
Теперь у меня есть чистые материалы для новой детали мне нужно вставить.
Однако мне нужно вставить новую деталь в существующий массив деталей счета-фактуры.
Например: счет-фактура № 5 содержит 3 детали (подробно [0], подробно [1], подробно [2]). Мне нужно вставить этот существующий счет-фактуру, подробно [3], и вызвать saveChanges()
Я попытался вызвать manger.createEntity ('invoice'), но он жалуется на ограничения FK. Я знаю, что вы можете передавать значения в качестве второго аргумента в createEntity ('obj', newvalues) ... но является ли это правильным и единственным методом?
Кажется, все должно быть намного проще, но, ну, я в недоумении, пожалуйста, помогите, где вы можете. ТИА!
Благодарим вас за отличный ответ! Вот как я закончил это: В моем ** контроллере ** я вызываю функцию, которая выглядит так: 'var d = dataservice.createNewDetail (vm.invoice); d.SeqNumber = (vm.invoice.InvoiceDetails.length + 1); vm.invoice.InvoiceDetails.push (d); ' Тогда моя функция dataservice должна быть не более ' return manager.createEntity ('InvoiceDetail') ' Я первоначально подошел к ней, как вы предлагали, см. Мой OP (_ I знаете, что вы можете передавать значения в качестве второго аргумента в createEntity ('obj', newvalues) ... но является ли это правильным и единственным методом? _) – SSIDEV
Могу ли я принять ответ? На самом деле, ваше предложение (в то время как другое) вызывает новый вопрос: какой подход является правильным? Я думаю, это сводится к тому, что лучше всего работает в вашей среде MV *? Если вы видите слабость или опасность в моем подходе, проконсультируйтесь далее. Иначе мы можем назвать это закрытым. Всего наилучшего! – SSIDEV
Существует небольшая разница, которая не имеет значения в вашем случае. Если вы установите свойство nav, Breeze обеспечит, чтобы оба родителя и ребенка находились в одном и том же «EntityManager» (выбрасывает, если они не являются). Установка идентификатора FK не налагает этот тест и будет подключать новый дочерний элемент 'Detail' к родительскому' Invoice', если этот счет-фактура присутствует в менеджере ребенка. Не проблема для вас, поскольку у вас есть только один менеджер. Выберите подход, который вам лучше всего подходит. – Ward