点击编辑日期未填充

时间:2017-02-22 06:39:31

标签: angularjs mongoose

  

以下代码包含开始日期和结束日期,当我保存日期时   mongodb是在ISODate(ISODate(" 2013-02-01T18:30:00.000 + 0000"))   格式,但当我尝试编辑日期将不会出现在输入但是当我   尝试显示ng.model它将包含格式的日期   2012-02-01T18:30:00.000Z   盒子是什么原因??

<div class="form-group" show-errors>
             <label class="control-label" for="sdate">Start Date</label>
             <input  name="sdate" type="date" ng-model="vm.batch.sdate" id="sdate" class="form-control input-sm" placeholder="Start Date" required>
             {{vm.batch.sdate}}

             <div ng-messages="vm.form.batchForm.sdate.$error" role="alert">
               <p class="help-block error-text" ng-message="required">Start Date is required.</p>
             </div>
           </div>

            <div class="form-group" show-errors>
             <label class="control-label" for="edate">End Date</label>
             <input name="edate" type="date" ng-model="vm.batch.edate" id="edate" class="form-control input-sm" placeholder="End Date" required>
             {{vm.batch.edate}}
             <div ng-messages="vm.form.batchForm.edate.$error" role="alert">
               <p class="help-block error-text" ng-message="required">End Date is required.</p>
             </div>
           </div>

3 个答案:

答案 0 :(得分:0)

您需要在ng-model中传递dateobject而不是简单的日期字符串

在您的控制器中,您可以执行类似

的操作
$scope.vm.batch.sdate=new Date(your date string here);

Here is working example

答案 1 :(得分:0)

您需要使用new Date()将其转换为日期对象。

试试这个

vm.batch.sdate = new Date(vm.batch.sdate);
vm.batch.edate = new Date(vm.batch.edate);

答案 2 :(得分:0)

原因是输入类型日期需要日期对象,而您的ng-model包含ISO日期字符串值,这就是为什么它不在输入框中显示日期。

请将ISO日期字符串转换为日期对象

ticket_cc_users