如何在AngularJS中格式化视图中的数据?

如何在AngularJS中格式化视图中的数据?,angularjs,angularjs-view,Angularjs,Angularjs View,在我看来user.user.DateOfBirth当前为YYYYMMDD格式,但我希望它在视图中显示为mm/dd/yyyy格式。是否可以将其转换为仅用于显示?用于以正确格式输出数据,请尝试使用过滤器(在您的情况下,日期过滤器:) 对于输入,这是另一种情况。我想你总是可以将输入绑定到另一个属性,观察它,自己解析它,然后将它分配给你的真实模型 如果您想了解更多信息,可以尝试以下方法: HTML: 不过,通过某种模式匹配(从而验证)或某种特殊的日期输入/小部件,强制用户使用某种输入格式可能会更好。这也

在我看来
user.user.DateOfBirth
当前为
YYYYMMDD
格式,但我希望它在视图中显示为
mm/dd/yyyy
格式。是否可以将其转换为仅用于显示?

用于以正确格式输出数据,请尝试使用过滤器(在您的情况下,日期过滤器:)

对于输入,这是另一种情况。我想你总是可以将输入绑定到另一个属性,观察它,自己解析它,然后将它分配给你的真实模型

如果您想了解更多信息,可以尝试以下方法:

HTML:

不过,通过某种模式匹配(从而验证)或某种特殊的日期输入/小部件,强制用户使用某种输入格式可能会更好。

这也可能对您有所帮助


使用自定义过滤器
{user.user.DateOfBirth | date[:format]}
这里的详细方法My
user.user.DateOfBirth
不是一个有效的JS日期对象它不必是一个对象,它可以是一个字符串:取自角度日期过滤器文档:
date以日期对象、毫秒(字符串或数字)的形式设置或者各种ISO 8601日期时间字符串格式
I get:
Expression'user.user.DateOfBirth | date:'medium'是不可分配的。元素:
不要将过滤器放在您的
ng模型中
方向,那么我如何在输入框中执行该操作?
<input type="text" ng-model="myDateInput">
$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
});
.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;
    };
});