1

日付ピッカーが元の状態であるかどうかを Angular コントローラーで確認できるようにする必要があります。メソッドで元の値を送信するなど、あらゆる種類のことを試しましたが、この値を取得できません。以下はビューコードです:

<form name="myForm">
                                <!-- Datepicker From -->
                                <div class="small-6 medium-5 large-2 columns" ng-if="vm.subViewActive">
                                    <div class="input-group">
                                        <input name="valuationDatePickerFrom" ng-model="name" type="text" class="datepicker" id="valuationDatePickerFrom" placeholder="DD/MM/YYYY" pikaday="vm.datePickerFrom" on-select="vm.selectStartDate(pikaday)" year-range="{{ vm.yearRange }}" >
                                        <div class="input-group-addon">
                                            <label for="valuationDatePickerFrom" class="postfix">
                                                <i class="fa fa-calendar"></i> From
                                            </label>
                                        </div>
                                    </div>
                                </div>
                </form>

そして、私も試しました:

var isPristine = $scope.myForm.valuationDatePickerFrom.$pristine;
console.log(isPristine);  

私のコントローラーでは、元の値を取得できません。ここで多くの投稿を読みますが、主に CSS クラスとフロントエンド コントロール、またはバックエンドからの初期状態の設定に関するもので、初期状態を取得またはチェックしていません。

助けてくれる人に感謝します。

4

2 に答える 2

2

あなたが使用している:

var isPristine = $scope.myForm.valuationDatePickerFrom.$pristine;

しかし、フォームの名前は ではありませんmyForm

変化する<input name="name"... <input name="valuationDatePickerFrom"...

次に、次を使用できます。

var isPristine = $scope.userForm.valuationDatePickerFrom.$pristine;

また、コントローラーはビューが作成される前に呼び出されるためmyForm、コントローラーの実行時には何も存在しません。$timeout次のように追加してみてください:

$timeout(function() {
  var isPristine = $scope.userForm.valuationDatePickerFrom.$pristine;
  console.log(isPristine);
}, 100);

プランカー

于 2016-06-10T12:03:04.807 に答える
1

上記のソリューションはページの読み込み時にのみ機能しますが、ページが使用されているときにこの値を知る必要があります。代わりに、アクションが発生したときにコントローラーに値を渡します。

<form name="myForm"> <input type="text" name="valuationDatePickerFrom" ng-model="valuationDatePicker" ng-blur="alerty(myForm.$pristine)"> </form>

.controller('MainController', function($scope) { $scope.alerty = function(isPristine){ alert('isPristine: ' + isPristine); };

https://plnkr.co/edit/f0EWvYmoXCn8UOH3QCfE?p=preview

于 2017-06-21T13:57:14.973 に答える