2

<input type="text" ng-model="user.User.DateOfBirth">です。user.User.DateOfBirthは現在フォーマットされていますが、ビューでフォーマットYYYYMMDDとして表示したいですmm/dd/yyyy。これを表示用に変換することはできますか?

4

2 に答える 2

4

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

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;
    };
});
于 2013-11-15T15:51:51.680 に答える
1

正しい形式でデータを出力するには、フィルターを試してください (あなたの場合、日付フィルター: http://docs.angularjs.org/api/ng.filter:date )

まあ、入力の場合は別のケースです。いつでもその入力を別のプロパティにバインドし、それを監視して自分で解析し、実際のモデルに割り当てることができると思います...

もう少し洞察力があれば、次のようなことを試すことができます。

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
});

ある種のパターン マッチング (したがって検証) またはある種の特別な日付入力/ウィジェットのいずれかによって、ユーザーに特定の入力形式を使用するように強制する方がおそらく良いでしょう。

于 2013-11-15T15:21:00.803 に答える