Проверка формы внутри аккордеона angularJS

У меня есть аккордеон (angular-bootstrap), который имеет 3 группы. Во второй группе есть форма, которая хорошо проверяется (обязательные поля и поля электронной почты).

В третьей группе находится сводка, построенная из данных формы. Или должно быть дополнительное сообщение об ошибке, когда что-то недействительно в форме.

Из-за директивной структуры каждая аккордеонная группа имеет свою собственную изолированную область. Как я могу разделить form.$valid (или другие свойства) между различными группами-аккордеонами (или даже вне аккордеона).

Это мой html (сокращенный):

<accordion close-others="true" id="checkoutsteps">
                <accordion-group is-open="menuStatus[0].isOpen">
                   [...]
                </accordion-group>
                <accordion-group is-open="menuStatus[1].isOpen">
                    <accordion-heading>
                        <div class="number">2</div>
                        {{bid.name}}
                    </accordion-heading>

                    <div class="step-content"> 
                       <form name="frmOffer">[...]</form>
                    </div>
                </accordion-group>
                <accordion-group is-open="menuStatus[1].isOpen">
                    <accordion-heading>
                        <div class="number">3</div>
                        Summary
                    </accordion-heading>

                    <div class="step-content"> 
                        <div ng-show="frmOffer.$valid"></div> <-- THIS DOES NOT WORK
                    </div>
                </accordion-group>

person BakGat    schedule 19.03.2015    source источник
comment
Вы когда-нибудь решали это? У меня та же проблема с моим accordion-heading, не включая содержащиеся входные данные в форме   -  person CaffGeek    schedule 30.03.2015
comment
Пока решения не нашел   -  person BakGat    schedule 01.04.2015


Ответы (1)


Решение состоит в том, чтобы определить новый объект в вашем контроллере, например

$scope.formObj={}

Затем назовите свою форму в этом элементе:

name="formObj.frmOffer">

Конечно, вам придется использовать этот объект везде.

<div ng-show="formObj.frmOffer.$valid"></div>
person Roy Calderon    schedule 16.09.2015