【问题标题】:Placeholder Date with ANGULAR date.now() doesn't work in Chrome带角度 date.now() 的占位符日期在 Chrome 中不起作用
【发布时间】:2016-05-18 01:43:43
【问题描述】:

在 Web 应用程序中,我有一个 input type="date",我希望用户的当前日期已经默认。所以我使用了 Angular,因为在纯 js 中不能在手机上工作(尽管在浏览器中工作)。所以这是 html 部分:

<body ng-app="app">    
<form ng-controller="DateController as dateCtrl"> 
<input type="date" id="date" value="{{value}}" ng-model="value" placeholder="dd-MM-yyyy">
</form>
</body>

这是 AngularJS 代码:

var app = angular.module('app', []);
 app.controller('DateController', ['$scope', '$filter', function($scope, $filter) {
$scope.value = $filter('date')(Date.now(), "dd-MM-yyyy"); 
}]); 

Firefox 和 Chrome 都在控制台中给我一个错误。但在 Firefox 中它可以工作,而在 Chrome 中它不起作用。 铬错误:

指定的值'{{value}}'不符合要求 格式,'yyyy-MM-dd'。 angular.min-1.4.5.js:107 错误:[ngModel:datefmt] http://errors.angularjs.org/1.4.5/ngModel/datefmt?p0=08-02-2016 在错误(本机) 在文件:///mypath/js/angular.min-1.4.5.js:6:416 在阵列。 (文件:///mypath/js/angular.min-1.4.5.js:165:14) 在对象。 (文件:///mypath/js/angular.min-1.4.5.js:264:75) 在 m.$get.m.$digest (file:///mypath/js/angular.min-1.4.5.js:129:480) 在 m.$get.m.$apply (file:///mypath/js/angular.min-1.4.5.js:133:113) 在文件:///mypath/js/angular.min-1.4.5.js:19:479 在 Object.e [作为调用] (file:///mypath/js/angular.min-1.4.5.js:39:96) 在 d (file:///mypath/js/angular.min-1.4.5.js:19:400) 在 yc (file:///mypath/js/angular.min-1.4.5.js:20:179)(匿名 函数)@angular.min-1.4.5.js:107$get@ angular.min-1.4.5.js:80$get.m.$digest @ angular.min-1.4.5.js:130$get.m.$apply @ angular.min-1.4.5.js:133(匿名函数)@ angular.min-1.4.5.js:19e @ angular.min-1.4.5.js:39d @ angular.min-1.4.5.js:19yc @ angular.min-1.4.5.js:20Zd @ angular.min-1.4.5.js:19(匿名函数)@ angular.min-1.4.5.js:292m.Callbacks.j @ jquery.min.js:2m.Callbacks.k.fireWith@jquery.min.js:2m.extend.ready @jquery.min.js:2J @jquery.min.js:2 jquery.min.js:5

指定的值'08-02-2016'不符合要求的格式, 'yyyy-MM-dd'。

【问题讨论】:

    标签: javascript jquery angularjs datetime angular-filters


    【解决方案1】:
    • 首先,有些引擎不支持 Date.now 函数。 ( 作为 描述于 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now) 所以你可以用$scope.value= new Date();$scope.value= new Date(Date.now());
    • 其次,我认为输入类型的日期是不可格式化的。它只是 采用系统默认值并将其应用于 GUI。所以你只需要选择&lt;input type="date" id="date" ng-model="value" placeholder="dd-MM-yyyy"&gt;

    【讨论】:

      【解决方案2】:

      由于日期格式问题而出现此错误。 您可以通过将日期值分配给范围变量来做到这一点 像这样:$scope.value = new Date();

      visit http://plnkr.co/edit/0WXlKM8xoBp4eBLovQ63?p=preview
      

      【讨论】:

        【解决方案3】:

        不要使用输入类型 date,因为它在 firefox 上不起作用

        【讨论】:

          猜你喜欢
          • 2017-04-23
          • 1970-01-01
          • 2018-02-01
          • 2018-01-17
          • 2014-06-17
          • 2015-03-20
          • 1970-01-01
          • 2018-02-19
          • 2013-10-19
          相关资源
          最近更新 更多