Date.now()未在窗体中的占位符日期类型中显示 - angularjs

时间:2015-01-15 05:36:04

标签: javascript angularjs date

我的日期来自服务器,格式为Date.now()并存储在order.date中

<input type="date" data-ng-model="order.date" id="date" 
    name="date" min="2013-01-01" max="2020-12-31" required/>

目前,order.date由服务器发送,并以Date.now()的形式存储。即使order.date有效,它也会将dd / mm / yy显示为占位符。

使用

设置order.date时效果很好
order.date = new Date(2013, 9, 22)

但不是

order.date = Date.now();

也可以在http://plnkr.co/edit/sl9OlHSNRPo2LXzupOxT?p=preview中进行测试。

enter image description here

3 个答案:

答案 0 :(得分:2)

似乎date输入类型的问题,这是我为使其工作所做的事情

angular.module('dateInputExample', [])
 .controller('DateController', ['$scope', '$filter', function($scope, $filter) {
   // change the format to "yyyy-MM-dd"
   $scope.value = $filter('date')(Date.now(), "yyyy-MM-dd");
 }]);

并在模板中添加value属性

<input 
   type="date" 
   value="{{value}}" 
   id="exampleInput" 
   name="input" 
   ng-model="value"
   placeholder="yyyy-MM-dd" 
   min="2012-01-01" 
   max="2030-12-31" 
   required />

此处正在运作plunker

答案 1 :(得分:1)

Date.now()可能会返回不同的格式日期。首先,您必须将返回的日期转换为所需的日期格式,然后将其分配给order.date变量范围

var todayDate = Date.now();

$scope.order={};

$scope.order.date=$filter('date')(todayDate, "yyyy/MM/dd"); 
// don't forget to inject $filter in your controller
//then it will work as you want

答案 2 :(得分:0)

尝试将order.date绑定到页面主体上并查看是否正在设置它,例如<p>{{order.date}}</p>并检查您是否正在为该视图使用正确的控制器或控制器已定义。