在我的AngularJS应用程序中,用户可以输入日期:
<input data-ng-model="modal.data.published" />
提交和接收后,将采用以下格式:"2013-08-22T00:00Z"
。请注意,它必须完全符合以下形式:“T00:00Z”在提交时附加到输入字段中的字符串上,并在数据从服务器传送到浏览器时删除。
有没有办法让日期装订工作如下:
Date Entered >>>> Date sent to server
"2013-08-22" "2013-08-22T00:00Z"
Date sent from server >>>> Date appearing in the input field
"2013-08-22T00:00Z" "2013-08-22"
答案 0 :(得分:3)
ngModelController为ng-model指令提供API:
$formatters
格式化模型中的值 - &gt; 查看即可。$parsers
格式化并验证视图中的值 - &gt;的模型即可。这是plunker:
app.directive('niceDate', function($filter){
return {
require: "ngModel",
link: function(scope,elm,attrs,ngModel){
ngModel.$formatters.push(function(val){
return $filter('date')(val,"yyyy-MM-dd");
});
ngModel.$parsers.push(function(val){
return $filter('date')(val,"yyyy-MM-dd") + "T00:00Z";
})
}
}
})
标记:
<input type="text" nice-date data-ng-model="modal.data.published" />
我刚刚展示了一个基本示例,您还应该添加自定义验证。