0

入力フィールドと送信ボタン、キャンセルボタンを備えたダイアログにフォームがあります。入力が間違っていることを示すために ng-message を使用します。しかし、ダイアログを無効にするために ng-click="$dismiss()" でキャンセルをクリックすると、ng-messageが表示され、アクションdismiss()が終了します。ケースを解決するためのいくつかの提案

<form name="accountGroupForm" novalidate>
            <div class="form-group"
                 >

                <input id="group-name" class="form-control" name="groupName" placeholder="{{'Group name' | translate}}"
                       ng-model="accountGroup.name" ng-focus="true"
                       required>

                <div ng-messages="accountGroupForm.groupName.$error" ng-if="accountGroupForm.groupName.$touched">
                    <div ng-message="required" class="help-block"><span translate>Group name is required</span></div>

                </div>
            </div>
            <div class="wrapper row">
                <div class="col-xs-6 text-right p-r-xs">
                    <button type="submit" class="hvr-grow btn btn-success w-sm"
                            ng-disabled="accountGroupForm.$invalid"
                            ng-click="submitAccountGroup()" translate>
                        Ok
                    </button>
                </div>
                <div class="col-xs-6 text-left p-l-xs">
                    <button class="hvr-grow btn btn-grey-blue w-sm" ng-click="$dismiss()" translate>Cancel
                    </button>
                </div>
            </div>
        </form>
4

1 に答える 1

1

独自の変数を使用して ng-if を ng-message に追加し、その変数を目的のアクションに設定できます。通常、$error と $dirty のフォーム検証で設定します。

ng-show='myForm.inputBox.$dirty && myForm.inputBox.$error'
于 2016-03-17T07:29:32.077 に答える