Ich komponiere dies in einer Ansicht, dann versuchen, .datepicker() auf das Ergebnis, aber nichts passiert..datepicker Aufruf innerhalb von Durandal aktivieren Funktion funktioniert nicht
Der compose Behälter
<div>
<!--ko compose: { model:'viewmodels/schedule', view: 'views/schedule.html', activate:true} -->
<!--/ko-->
</div>
schedule.html
<div class="schedule-editor">
</div>
Und der Zeitplan Modul
define([], function() {
var vm = {
activate: activate,
};
return vm;
function activate() {
$('.schedule-editor').datepicker();
console.log("activated schedule module");
return true;
}
});
Conso le protokolliert "aktiviertes Zeitplanmodul", aber der Datapicker wird nicht erstellt. Wenn ich auf die Chrom-Konsole gehe und den jQuery-Anruf starte, $('.schedule-editor').datepicker();
, bringt es den Datepicker in Ordnung.
Die Durandal-Dokumentation behauptet, dass die Aktivierungsfunktion aufgerufen wird, nachdem das DOM vollständig zusammengesetzt ist, also weiß ich nicht, was ich sonst noch versuchen soll.
Versuchen Sie, Ihre jQuery-Logik in eine 'viewAttached'-Methode anstelle der' activate'-Methode einzufügen. – nemesv