AngularyJSのビューでデータをフォーマットするにはどうすればよいですか?

StackOverflow https://stackoverflow.com//questions/20004255

  •  20-12-2019
  •  | 
  •  

質問

<input type="text" ng-model="user.User.DateOfBirth">が私のビューにあります。user.User.DateOfBirthは現在YYYYMMDD形式でありますが、ビューでmm/dd/yyyyフォーマットとして表示されます。ディスプレイのためだけにこれを変換することは可能ですか?

役に立ちましたか?

解決

正しい形式でデータを出力するためのフィルタ(あなたの場合は日付フィルタ:http://docs.angularjs.org/api/ng.filter:Date

well、入力の場合は別のケースです。私はあなたが常にその入力を別のプロパティにバインドし、それを見て自分で解析してからあなたの本物に割り当てることができると思います...

もう少し洞察、あなたはこのようなものを試すことができます:

HTML:

<input type="text" ng-model="myDateInput">
.

JSコントローラの場合は、次のように使用します。

$scope.$watch('myDateInput', function (newValue) {
    $scope.user.User.DateOfBirth = $filter('date')(newValue, 'yyyy-MM-dd'); // Or whatever format your real model should use
});

$scope.$watch('user.User.DateOfBirth', function (newValue) {
    $scope.myDateInput = $filter('date')(newValue, 'yyyy-MM-dd'); // Or whatever format your input should use
});
.

多様なパターンマッチング(したがって検証)またはある種の特別日入力/ウィジェットによって、特定の入力フォーマットを使用することを強制することがおそらくより良いでしょう。

他のヒント

これはあなたを助けるかもしれません

http://jsfiddle.net/mikeeconroy/hu9m2/1/

.filter('myFormatDateFilter',function(){
    return function(input){
        if(angular.isDefined(input)){
           if(input.length >= 8){
                input = input.slice(0,8);

                input = input.slice(4,6) + '/' + input.slice(6,8) + '/' + input.slice(0,4);
            }
        }
        return input;
    };
});
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top