1

3 つのグループを持つアコーディオン (angular-bootstrap) があります。2 番目のグループには、適切に検証されるフォームがあります (必須フィールドと電子メール フィールド)。

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>
4

1 に答える 1

1

解決策は、コントローラーで次のような新しいオブジェクトを定義することです

$scope.formObj={}

次に、その要素内でフォームに名前を付けます。

name="formObj.frmOffer">

もちろん、そのオブジェクトをどこでも使用する必要があります..

<div ng-show="formObj.frmOffer.$valid"></div>
于 2015-09-16T23:14:14.657 に答える