3

次の検証を読むと、次Angularjsのことが理解できます: ユーザーが対話し、日付を手動で入力しなかった場合、メッセージが表示されます。問題は、datepicker を使用して日付が入力されると、入力が Angularjs によって認識されず、$invalid が true と見なされるため、datepicker を使用して日付が既に入力されているにもかかわらず、混乱/問題となるメッセージがそこに残ることです!

<div class="form-group" ng-class="{ 'has-error' : AddForm.Birthdate.$invalid && !AddForm.Birthdate.$pristine }"> 
     <input type="text"  required data-provide="datepicker"  class="form-control" name="Birthdate" ng-model="Birthdate"  />
     <span ng-show="AddForm.Birthdate.$invalid  && !AddForm.Birthdate.$pristine" class="help-block" >
  Birthdate is required.
     </span>
</div>
4

4 に答える 4

1

この問題の新しい方法を発見しました-

まず最初にその入力ボックスの ID を作成し、次に $scope.assign() という関数を作成します。これは単に ID 値をその入力のモデルに割り当てるだけです。このようなもの-

$scope.assign = function() {
$scope.modelValue = $('#idName').val();
}

入力ボックスに ng-bind="assign()" を使用します。

それは私のために働いた:)

于 2015-12-05T11:21:19.333 に答える
1

フォームを送信する前に検証するか、datepicker にリスナーをフックして、モデル プロパティの Birthdate 値を手動で設定できます。

ブートストラップの日付ピッカーは JQuery の日付ピッカーの上に構築されているようです。値を手動で設定することは、参照できる悪い習慣になるでしょう: jQuery で入力値を設定した後に Angular モデルを更新する

より良いアプローチは、次のような組み込みの角度コンポーネントを使用することです。

https://angular-ui.github.io/bootstrap/ http://dalelotts.github.io/angular-bootstrap-datetimepicker/ https://github.com/dalelotts/angular-bootstrap-datetimepicker

于 2015-06-17T17:41:05.103 に答える
0

私の以前の回答は回避策に基づいていました.その時点で私はAngularにかなり慣れていなかったので、AngularプロジェクトでJqueryの上に構築されたライブラリを使用しないことをお勧めします. 代わりに、Angular ライブラリを優先します。

トピックについて-日時ピッカーについて、非常に優れたライブラリを1つ見つけました

https://github.com/indrimuska/angular-moment-picker

組み込みの angular でより多くのライブラリを見つけることができますが、min-date、max-date 検証などの他の検証にも非常に役立つことがわかりました。

このライブラリを使用すると、検証の問題とその純粋な Angular の方法が確実に解決されます。

于 2016-07-24T06:14:27.090 に答える
0

問題に直面していましたが、使用しているピッカーが Jquery の上に構築されているため、更新時にスコープによって検出されないままです。

私の新しいプロジェクトでは、別のライブラリを追加しましたが、それはかなり素晴らしいものです。ドキュメントhttp://dalelotts.github.io/angular-bootstrap-datetimepickerを参照してください

ラッパー ディレクティブを追加したコードを提供する

于 2016-05-01T19:27:19.757 に答える