J'ai fait un petit violon montrant ma question ici http://jsfiddle.net/LkqTU/33025/référence à un ID créé dans un composant à élimination directe
DatePicker fabriqué à l'aide d'un composant ne se déclenche pas
ci-dessous est mon premier post ...
J'utilise le sélecteur bootstrap 3 date et il fonctionne comme suit.
javascript 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>
.
$('#earlyPickup').datetimepicker(
{
defaultDate: d.DB2VXRVSMRecord.DtErlstPickup + " " + d.DB2VXRVSMRecord.TiErlstPickup
});
cela fonctionne très bien mais j'ai plusieurs de ces ramasseurs de temps de date donc je tenté de créer un composant à élimination directe.
composant.
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>'
});
et j'ai changé mon HTML en.
<datetime-picker
params="label: 'Early Pickup',
id: 'earlyPickup',
hasError: ErlstPickupHasErrors">
</datetime-picker>
Malheureusement, mon sélecteur de date n'est plus instancié. Je suppose que parce que je suis en train d'utiliser un composant, je ne peux pas me référer à id directement? Lorsque vous appelez le sélecteur d'heure de date $('#earlyPickup').datetimepicker(
, ne sait-il pas ce que earlyPickup est en ce moment?
Comment êtes-vous le sélecteur à la fixation des éléments? Si vous le faites immédiatement sur le chargement, les chances sont, les identifiants ne seront pas encore appliqués afin que vous puissiez le manquer. –
vous pouvez également utiliser un gestionnaire de liaison pour le contrôle 'datetimepicker' et l'utiliser partout où vous avez ce contrôle – gkb