0

我正在使用 Angular 1.5.5 进行编程,并且正在使用 Materialize CSS 0.97.6。我有这个问题。

在控制器上,我有$scope.myDate = '2017-01-13T02:06:40' 在 HTML 文件中,我有<input type='date' class='form-control datepicker' value="{{(myDate | date: 'dd/MM/yyyy')}}">

但输入字段不显示任何内容。

如果我<input type='date' class='form-control datepicker' value="13/01/2017">说它有效。

我这样做是为了检查 myDate 变量<div ng-bind="myDate | date : 'dd/MM/yyyy'"></div>,它也可以工作。

那么,任何人都可以解释为什么在我使用变量时没有将值加载到输入中?

4

3 回答 3

0

至于任何其他输入,您可以使用 ng-model 将输入字段中的值与您的模型绑定。

正如文档所说

模型必须始终是 Date 对象,否则 Angular 会抛出错误。无效的 Date 对象(getTime() 为 NaN 的日期)将呈现为空字符串。

于 2017-01-13T19:36:43.523 回答
0

您可以使用属性 ng-model 将日期从范围传递到 input[date]。您可以在此处查看完整文档:https ://docs.angularjs.org/api/ng/input/input%5Bdate%5D

在您的代码中,您需要更改myDate为 Date 对象,而不是字符串

$scope.myDate = new Date(2013, 9, 22);

而且在您的模板中,输入[日期] 将是这样的:

<input type='date' ng-model="myDate " />
于 2017-01-13T19:37:48.897 回答
0

无法更改 html5 输入日期类型的格式,有关更多信息,请参阅下面的上一个答案:

有没有办法改变输入类型=“日期”格式?

因此,如果格式是强制性的,您可以使用 angular ui.bootstrap库中的 Datepicker Popup 元素,例如,您可以直接设置格式,这是他们的plunker 示例

否则,如果格式对您不是强制性的,只需实例化一个新的日期对象,它将像这样工作:

$scope.myDate = new Date('2017-01-13T02:06:40');
<input type="date" class="form-control datepicker" ng-model="myDate">

或者如果您不关心编辑日期并且只想显示它,您可以将输入的类型更改为文本,它也可以像这样工作:

$scope.myDate = '2017-01-13T02:06:40';
<input type="text" class="form-control datepicker" ng-readonly="true" style="background: #ffffff;" value="{{myDate | date: 'dd/MM/yyyy'}}">
于 2017-01-14T06:54:57.483 回答