1

ng-model ディレクティブにバインドされた単純な HTML5 日付コントロールを使用しています。これが私のコードです。

<input type="date" datepicker id="NextServiceDate" name="NextServiceDate" ng-model="product.NextServiceDate" />

日付コントロールをng-modelにバインドしていない場合、jquery date-pickerは正常に動作しますが、ng-modelにバインドした後、初めて日付を設定しますが、日付を更新しようとすると、日付ピッカーを呼び出しません。

Firefox でこの機能を実現する方法を教えてください。

ディレクティブも作成しましたが、入力タイプが「日付」の場合も呼び出されません。入力タイプ「テキスト」で正常に動作します。

One23SRCApp.directive('datepicker', function () {
    return {
        require: 'ngModel',
        link: function (scope, el, attr, ngModel) {
            $(el).datepicker({
                onSelect: function (dateText) {
                    scope.$apply(function () {
                        var expression = attr.ngModel + " = " + "'" + dateText + "'";
                        scope.$apply(expression);
                    });
                }
            });
        }
    };
});
4

1 に答える 1

0

あなたがする必要はありません:

$(el).datepicker(...);

ディレクティブ リンク関数 (コード内のパラメーター 'el') で DOM 要素を直接取得します。

ここで何をしているのかわかりません:

var value = "";

それが一度だけ呼び出され、それ以上の更新の後では呼び出されないという事実は、ほとんどの$digest()場合、ページが最初にロードされたときに角度がすべてのウォッチャーをトリガーするためです(つまり、呼び出し)。

于 2013-08-22T06:46:24.500 に答える