我做了一個小的小提琴證明了我的問題在這裏創建http://jsfiddle.net/LkqTU/33025/引用一個標識在淘汰賽組件
的日期選擇器是採用在組件不火
下面是我原來的職位...
我正在使用bootstrap 3日期時間選擇器,它的工作方式如下。
HTML
<div data-bind="css: formControlCss">
<label class="control-label" for="earlyPickup">Early Pickup:</label>
<div class='input-group date' id='earlyPickup'>
<input type='text' class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
的JavaScript。
$('#earlyPickup').datetimepicker(
{
defaultDate: d.DB2VXRVSMRecord.DtErlstPickup + " " + d.DB2VXRVSMRecord.TiErlstPickup
});
這工作得很好,但是我有幾個這樣的日期時間選擇器,所以我試圖創建一個淘汰賽的組成部分。
組件。
ko.components.register('datetime-picker', {
viewModel: function (params) {
this.label = params.label
this.id = params.id
this.hasError = params.hasError
this.formControl = ko.pureComputed(function() {
return (this.hasError()) ? "form-group has-error" : "form-group";
}, this);
},
template:
'<div data-bind="css: formControl">\
<label class="control-label" \
data-bind ="attr: {for: id}"> \
<span data-bind="text: label"></span>:</label>\
<div class="input-group date"\
data-bind= "attr: {id: id}" >\
<input type="text" class="form-control" />\
<span class="input-group-addon">\
<span class="glyphicon glyphicon-calendar"></span>\
</span>\
</div>\
</div>'
});
我將HTML更改爲。
<datetime-picker
params="label: 'Early Pickup',
id: 'earlyPickup',
hasError: ErlstPickupHasErrors">
</datetime-picker>
不幸的是我日期時間選取不再實例化。我假設,因爲我現在正在使用一個組件,我不能直接引用id?當調用日期時間選擇器$('#earlyPickup').datetimepicker(
它不知道earlyPickup在這一點上是什麼?
你如何安裝機械手的元素?如果您在加載時立即執行該操作,則可能會發生這種情況,因此您可能會錯過該ID。 –
你也可以使用'datetimepicker'控件的綁定處理程序,並在你擁有該控件的地方使用它 – gkb