ich meine Knockout-Komponente auf diese Weise laden:Zugriff auf Knockout Komponente DOM aus erforderlich AMD Ansichtsmodell
ko.components.register("example", {
viewModel: {require: "widgets/example"},
template: {require: "text!widgets/example.html"}
});
mit example.js
(stark vereinfacht):
"use strict";
define(["knockout"], function(ko) {
function ExampleWidgetViewModel(params) {
this.editedText = ko.observable("Example");
}
return ExampleWidgetViewModel;
});
und example.html
:
<div id="example-dlg", data-bind="text: editedText"></div>
Die Komponente wird wie üblich <example></example>
und eve aufgerufen Alles funktioniert perfekt. Aber ich möchte auf das DOM zugreifen, um die Notwendigkeit der id
in der Vorlage zu entfernen. Versuchen the method from the documentation Wechsel example.js
zu sein:
"use strict";
define(["knockout"], function(ko) {
function ExampleWidgetViewModel(params, componentInfo) {
this.editedText = ko.observable("Example");
}
return {createViewModel: ExampleWidgetViewModel};
});
Aber es beklagt, dass editedText
nicht gefunden wird. Das gleiche Problem mit anderen Variationen wie folgt:
"use strict";
define(["knockout"], function(ko) {
function creaExample(params, componentInfo) {
let ExampleWidgetViewModel = (params) => {
this.editedText = ko.observable("Example");
}
return ExampleWidgetViewModel;
}
return {createViewModel: creaExample};
});
Können Sie ein funktionierendes Beispiel bieten? Vielen Dank!