5

これがバグかどうかはわかりませんが、これが私が達成しようとしていることです。これはデバッグ目的のためであるため、私はグーグルクロームだけを気にします。html5入力タイプの日付を使用してモデルを更新してもらいたい。問題は、ポップアップ角度から日付を選択しても更新されないことです。代わりに矢印を使用して日付を実行すると、更新されます。ngModelを更新する他の方法はありますか?

<div ng-app>
     <input type="date" data-ng-model="date" style="width:200px;" />
     <br>
     {{ date }}
</div>

これがそのフィドルです:http://jsfiddle.net/rtCP3/55/

4

2 に答える 2

6

Angularは、inputマウスを上下にクリックするか、エラーをクリックするとトリガーされると思われるイベントをリッスンします。ただし、何らかの理由で(バグ?)、そのイベントはカレンダーダイアログからトリガーされません。

changeイベントに登録してからモデルを更新する単純なディレクティブを作成しました。ここで実際の例を見ることができます。

ディレクティブは非常に単純です。

module.directive('dateFix', function() {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function (scope, element, attr, ngModel) {
            element.on('change', function() {
                scope.$apply(function () {
                    ngModel.$setViewValue(element.val());
                });         
            });
        }
    };
});

そして、次のように使用します。<input type="date" ng-model="dateValue" date-fix />

少なくとも一時的な回避策。

于 2013-02-06T19:16:32.170 に答える
1
<form>
     <input type="date" name="date"  data-ng-model="date" style="width:200px;" />
</form>

そして、次の値があります:form.date。$ viewValue ;

于 2016-10-05T13:00:51.037 に答える