4

現在のプロジェクトでは、Bootstrap datepickerを使用して、ユーザーが日付を選択できるようにしています。

ウィジェットで日付を手動でクリックするのではなく、datePicker入力に日付を入力できるようにする要求がありました。

現在、ユーザーが日付文字列を手動で編集すると、日付ピッカーは正しい日付を強調表示しますが、割り当てられている変数は更新されません。(メモとして、私はKnockout.jsを使用しており、日付を保存するためにobservableを使用しています)

私の考えでは、これは単にchangeDate関数をトリガーしますが、トリガーしません。

誰かがこれを達成してそれを機能させようとしたことがありますか?

4

2 に答える 2

1

これは、動作中のjsfiddleとandバインディングの要点です。これらは独立してオブザーバブルにバインドし、それに応じて更新します。datePickerdateValue

<div class="input-append date">
    <input type="text" data-bind="dateValue: date" />
    <span class="add-on datepicker-button" data-bind="datePicker: { date: date }">
        <i class="icon-calendar"></i>
    </span>
</div>

バインディングは、 1。バインドされた要素ごとにハンドラーオブジェクトを作成し、それを要素に格納するBindingHandlerFactoryラッパーを使用して記述されます。 2.ハンドラーを1回呼び出します。3.バインディングコンテキストが変更されるたびに 、ハンドラーのメソッドを呼び出します。
$.data()
initialize(element, context)
contextChanged(context)

于 2013-02-07T10:19:26.520 に答える
0

KOで読み取り/書き込みオプションを使用しないのはなぜですか。

何かのようなもの

function yourModel(){
var self = this;
self.theDateUserManuallyWillEnter = ko.computed({
read: function () {
    if (self.theDateUserManuallyWillEnter != undefined)
        return self.theDateUserManuallyWillEnter ;
    else
        return $('#theDateUserManuallyWillEnteredTextBox').val(); //Jquery      
                                 identifier of text box
},
write: function (value) {
    self.theDateUserManuallyWillEnter = value;
},
owner: this
});
}
于 2013-10-24T22:37:53.007 に答える