【问题标题】:Angularjs - display current date and save it on a tableAngularjs - 显示当前日期并将其保存在表格中
【发布时间】:2015-03-19 18:14:30
【问题描述】:

我在 angularjs 中有一个视图,我只是想显示当前日期。

html

 <input type="text" class="form-control" ng-model="lis.ModifiedDate" id="ModifiedDate">

app.js

$scope.ModifiedDate = $filter("ModifiedDate")(Date.now(), 'yyyy-MM-dd');

你能帮帮我吗?我想显示默认日期并将其保存在表格上。

【问题讨论】:

  • 你需要在文本框中显示过滤后的日期吗?
  • @K.Toress 是的,我想要那个

标签: javascript angularjs


【解决方案1】:

好的。您要问的是如何格式化 ng-bind 中的数据并对其进行编辑。您需要做的事情鲜为人知,称为格式化程序:

How to do two-way filtering in angular.js?

您需要定义读取和写入格式化日期的函数。这实际上很容易,但 Date() 可以很好地解析日期格式。但是,您不能只使用过滤器来执行此操作。

或者,如果您对字段中的长日期格式感到满意,您可以对其进行编辑,它将被更新为正常的绑定值。不过相当精致 - 请参阅 plunkr:

http://plnkr.co/edit/MPfGoNsG74rAV6UuvBKk?p=preview

  <body ng-controller="MainCtrl">
    <p>Edit the date in the input:</p>
    <input ng-model="boundDate">
    {{boundDate | date : 'yyyy-mm-dd'}}
  </body>

app.controller('MainCtrl', function($scope, $filter) {
  $scope.boundDate = new Date();
});

【讨论】:

  • 好的,它现在确实显示了,但是我想将它保存到一个字段中,所以如何将该字段与我显示的日期链接
  • 我想在文本框中显示日期,然后将日期保存到我的表中
  • 非常感谢您的回复。 Toress 做对了它的工作
【解决方案2】:

将控制器更改为,

 $scope.ModifiedDate = $filter("date")(Date.now(), 'yyyy-MM-dd');

不要忘记将$filter 注入控制器

和 html,您需要使用 ModifiedDate 而非 lis.ModifiedDate 将值绑定到文本框。

<input type="text" class="form-control" ng-model="ModifiedDate" id="ModifiedDate">

这是一个示例Plunker

【讨论】:

  • Toress 我在保存日期时遇到问题我的 c# 代码保存了错误的日期而不是默认日期
  • 你是否正在向后端发送$scope.ModifiedDate 值?
  • Toress 是的,我正在这样做
【解决方案3】:

使用moment js可以将日期转换成需要的格式

$scope.formattedDate = moment(new Date()).format("YYYY-MM-DD");

在 html 中直接使用 {{formattedDate}} 它以 yyyy-mm-dd 格式显示日期

【讨论】:

  • 非常感谢您的回复。 Toress 做对了它的工作
猜你喜欢
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-24
相关资源
最近更新 更多