1

プロジェクトでAngular Moment Pickerを使用しています。編集ページになると、ng-model 値は API からのデータによって上書きされる必要がありますが、ng-model 値を undefined にバインドする代わりに、いずれにせよ値は瞬間ピッカー ng-model に上書きされません。moment-picker を削除すると、機能します。以下は私の状況のデモです。

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);
4

1 に答える 1

3

私は同じ問題を抱えていました。

このコメントは私を助けます。 https://github.com/indrimuska/angular-moment-picker/issues/92#issuecomment-263669991

リンクから。それを行うには2つの方法があります。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 オブジェクト remove パラメータを使用して書式設定された日付を取得する moment-picker から

<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に行き着きます。これが役立つことを願っています。

于 2017-01-11T14:57:27.237 に答える