5

皆さんこんにちは、

angular アプリケーションで Kendo-UI 日付ピッカーを使用すると、いくつかの問題が発生します。どんな助けでも大歓迎です。

前もって感謝します、
ドリュー

問題

日付ピッカーに angular-kendo ディレクティブを使用すると、日付オブジェクトがモデルに入れられます。望ましい動作は、オプションによってフォーマットされたモデルに文字列を格納することです。

Javascript のバージョン

Angular-Kendo 0.5.2 2013-07-26

AngularJS v1.0.5

jQuery jQuery v1.9.1

テンプレートからのスニペット

<input type="text" name="publicationDate" ng-model="preview.publicationDate" kendo-date-picker="dateOptions" k-options="dateOptions" />

日付オプション

$scope.dateOptions = {
    形式: 「yyyy-MM-dd」
};

出力

モデルに格納された日付オブジェクト: 2013 年 9 月 17 日火曜日 00:00:00 GMT-0400 (EDT)
モデルに格納する必要のある文字列: 2013-09-17

質問

  1. この問題の解決策はありますか?
  2. ディレクティブを正しく使用していますか?
4

4 に答える 4

4

Kendo UI 2014 Q2 (2014.2.625) では、ng-model の代わりに k-ng-model を使用することで修正されました。

于 2014-07-15T10:48:40.980 に答える
3

このコードは、kendo-date-time-picker を目的の形式に変更するのに役立ちます

<input kendo-date-time-picker
             k-options="monthSelectorOptions"
             k-format="'dd/MM/yyyy hh:mm tt'" />
于 2015-06-03T15:12:35.823 に答える
2

考えられる解決策

カスタム ディレクティブを作成することで回避できました。別のスタック オーバーフローの投稿で提供されているサンプルは、カスタム ディレクティブの作成方法を示しています

まだ追加のテストを行う必要がありますが、機能しているようです。ただし、これが問題を回避するための最も効率的な方法であるかどうかはわかりません。

テンプレートからのスニペット

<input type="text" parsedate="yyyy-MM-dd" name="publicationDate" ng-model="preview.publicationDate" kendo-date-picker="" k-options="dateOptions"/>

カスタム ディレクティブ

module.directive("parsedate", function () {
    return {
        require: "ngModel", link: function (scope, element, attr, ngModel) {

            function parsedate(text, format) {
                return kendo.toString(text, attr.parsedate);
            }

            ngModel.$parsers.push(parsedate);
        }
    };
});
于 2013-09-18T12:43:50.023 に答える