Angular Moment Picker不会覆盖ng-model值

时间:2017-01-11 01:11:47

标签: angularjs momentjs angular-moment

我在我的项目中使用Angular Moment Picker。当涉及编辑页面时,ng-model值应该被来自API的数据覆盖,但是不管怎样,值都不会覆盖到时刻选择器ng-model而不是使用undefined绑定ng-model值。如果我删除时刻选择器它确实有效。以下是我的情况演示。

JSFiddle

查看

 <input name="time_of_time"
    class="form-control"
    placeholder="Select a time"
    ng-model="scheduler.timeOfTime"
    ng-model-options="{updateOn: 'blur'}"
    moment-picker="scheduler.timeOfTime" //Working if remove this line
    format="HH:mm">

控制器

myApp.controller('HomeCtrl', function ($scope) {
    $scope.scheduler = {};

    $scope.scheduler.timeOfTime = '11:10';

    console.log($scope.scheduler);

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。

此评论对我有帮助。 https://github.com/indrimuska/angular-moment-picker/issues/92#issuecomment-263669991

从链接。有两种方法可以做到这一点。 1.使用来自moment-picker属性的格式化字符串日期

<input moment-picker="ctrl.formattedDate"
       ng-model="ctrl.momentDate"
       ng-model-options="{ updateOn: 'blur' }"
       format="DD MMM YYYY"
       start-view="month">

<!-- Use `ctrl.formattedDate` anywhere -->
Formatted date: {{ ctrl.formattedDate }}

2。使用Moment.js对象检索格式化日期 从时刻选择器中删除参数

<input moment-picker
       ng-model="ctrl.momentDate"
       ng-model-options="{ updateOn: 'blur' }"
       format="DD MMM YYYY"
       start-view="month"
       change="ctrl.setFormattedDate(newValue)">

<!-- Use `ctrl.formattedDate` anywhere -->
Formatted date: {{ ctrl.formattedDate }}

在您的控制器中

ctrl.setFormattedDate = function (momentDate) {
   // do you stuff.. and
   ctrl.formattedDate = momentDate.format('DD MMM YYYY');
};

我最终选择方法2。 希望这有帮助。