最近、Knockout と JQuery を使用して会社のプロジェクトを Durandal に移植しました。問題にまっすぐ: 2 つの HTML 入力を使用して JQuery UI の日付ピッカーを初期化する必要があります。ただし、これを行うと、JQueryは入力を見つけることができません。
見る:
<div data-bind="if: !CurrentUser()">
<h1 data-bind="html: DisplayName"></h1>
<div data-bind="compose: 'users/_UsersList.html'"></div>
</div>
<div data-bind="with: CurrentUser(), visible: CurrentUser()">
<h1>User detail</h1>
<div data-bind="compose: 'users/_UserDetail.html'"></div>
</div>
viewmodel - 最初の div でユーザーが選択されたときに SelectUser() 関数が呼び出され、次に 2 番目の div と users/_UserDetail.html が読み込まれます。
users.SelectUser = function (user) {
users.CurrentUser(user);
/* ... */
$(function () {
$("#datepickerFrom").datetimepicker({
dateFormat: "d. m. yy",
timeFormat: "HH:mm:ss",
defaultDate: null
});
$("#datepickerTo").datetimepicker({
dateFormat: "d. m. yy",
timeFormat: "HH:mm:ss"
});
});
}
_UserDetail.html の重要な部分
<div class="control-group">
<label class="control-label">Active from</label>
<div class="controls">
<input type="text" data-bind="value: ActiveFrom" id="datepickerFrom" />
</div>
</div>
<div class="control-group">
<label class="control-label">Active to</label>
<div class="controls">
<input type="text" data-bind="value: ActiveTo" id="datepickerTo" />
</div>
</div>
次に、2 つの HTML 入力が未定義になります。実際の users/_UserDetail.html コンテンツへのバインディングを変更するdiv
と、compose
問題なく動作しますが、ビューがすぐに混乱します。html ファイルは正確に小さくはありません。誰かが私を正しい方向に向けることができれば、私は感謝します. ありがとう!