[解決済み] ng-modelを使用して日付をフォーマットする方法は?
2023-02-04 03:31:10
質問
次のように定義された入力があります。
<input class="datepicker" type="text" ng-model="clientForm.birthDate" />
これは、ページの別の場所に表示されるように装備されています。
<tr>
<th>Birth Date</th>
<td>{{client.birthDate|date:'mediumDate'}}</td>
</tr>
ページが読み込まれると、生年月日は次のようなきれいな書式で表示されます。
Dec 22, 2009
. しかし、私の
<input>
の中を見ると
Tue Dec 22 2009 00:00:00 GMT-0800 (Pacific Standard Time)
と表示されますが、これはJSのレンダリング方法だと思います。
Date
オブジェクトを文字列として表示する方法だと思います。
まず、Angularに日付を表示するように指示する方法ですが、これは
<input>
のように表示させるにはどうしたらよいでしょうか。
12/22/2009
? を適用することができないようです。
|filters
の中に
ng-model
属性の中にあります。
次に、日付を編集すると、たとえ元の書式のままであっても、他のテキスト (
<td>
の中)には
|date
フィルタが適用されないようです。突然、入力テキストボックスのフォーマットと一致するように変わってしまいます。どうすれば
|date
フィルタを適用させるにはどうしたらよいでしょうか?
関連する質問です。
どのように解決するのですか?
フォームのカスタムバリデーションを使用する http://docs.angularjs.org/guide/forms デモ http://plnkr.co/edit/NzeauIDVHlgeb6qF75hX?p=preview
フォーマとパーサを使ったディレクティブと モーメントJS )
angModule.directive('moDateInput', function ($window) {
return {
require:'^ngModel',
restrict:'A',
link:function (scope, elm, attrs, ctrl) {
var moment = $window.moment;
var dateFormat = attrs.moDateInput;
attrs.$observe('moDateInput', function (newValue) {
if (dateFormat == newValue || !ctrl.$modelValue) return;
dateFormat = newValue;
ctrl.$modelValue = new Date(ctrl.$setViewValue);
});
ctrl.$formatters.unshift(function (modelValue) {
if (!dateFormat || !modelValue) return "";
var retVal = moment(modelValue).format(dateFormat);
return retVal;
});
ctrl.$parsers.unshift(function (viewValue) {
var date = moment(viewValue, dateFormat);
return (date && date.isValid() && date.year() > 1950 ) ? date.toDate() : "";
});
}
};
});
関連
-
[解決済み】angularのonLoadとng-initの違いについて
-
[解決済み] X-Frame-Options'を'SAMEORIGIN'に設定しているため、フレーム内での表示を拒否された。
-
[解決済み] Angular ng-repeat エラー "リピータ内の重複は許可されません。"
-
[解決済み] ajaxリクエスト時にAngularjsのローディング画面が表示される。
-
[解決済み] ディレクティブ '...' が要求するコントローラ 'ngModel' が見つかりません。
-
[解決済み] ng-pattern` - 数字だけをチェックする方法は?
-
AngularJS がエラー $digest already in progress を報告する
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Angular ui-routerで$stateメソッドを$stateChangeStart toStateとfromStateで使用する。
-
[解決済み] Angular UI-Routerのマルチビュー
-
[解決済み] ng-repeat内で$indexを使用して、クラスを有効にしてDIVを表示するにはどうすればよいですか?
-
[解決済み] ディレクティブ '...' が要求するコントローラ 'ngModel' が見つかりません。
-
[解決済み] controllerAs "プロパティを使用する理由は何ですか?
-
[解決済み] Jasmineの "callThrough "と "callFake() "の実用的な例が欲しい
-
[解決済み] なぜAngularJSはselectに空のオプションを含めるのですか?
-
[解決済み] コントローラでフィルタを使用するには?
-
[解決済み] AngularJSでコントローラを2回実行する場合の対処法
-
[解決済み] AngularJSでEnterキーを押したときにフォームを送信する