Ich arbeite durch einige - interessante - Code, den ich nicht geschrieben habe, und stieß auf ein RequireJS-Modul, das eine KnockoutJS-Instanz für die Anwendung zu initialisieren scheint. KnockoutJS: Was macht Aufruf applyBindings ohne Argumente tun?
define([
'ko',
'./template/engine',
'knockoutjs/knockout-repeat',
'knockoutjs/knockout-fast-foreach',
'knockoutjs/knockout-es5',
'./bind/scope',
'./bind/staticChecked',
'./bind/datepicker',
'./bind/outer_click',
'./bind/keyboard',
'./bind/optgroup',
'./bind/fadeVisible',
'./bind/mage-init',
'./bind/after-render',
'./bind/i18n',
'./bind/collapsible',
'./bind/autoselect',
'./extender/observable_array',
'./extender/bound-nodes'
], function (ko, templateEngine) {
'use strict';
ko.setTemplateEngine(templateEngine);
ko.applyBindings();
});
Dieser Code ruft ko.applyBindings()
ohne eine Ansicht Modell. Ich bin sehr neu zu knockout, aber alle die Tutorials, die ich gesehen habe, müssen Sie applyBindings
ein ViewModel-Objekt übergeben.
Wie funktioniert der Aufruf applyBindings
ohne Parameter genau?
Mein Endziel hier ist herauszufinden, wie diese Anwendung (Magento 2, wenn jemand neugierig ist) Knockout verwendet, um Dinge zu rendern, also bin ich auf der Suche nach Gründen ein Knockout-Entwickler könnte so etwas tun.
Es sieht so aus, als wäre es in Ordnung, nur $ root und $ data werden nicht gesetzt. http://stackoverflow.com/questions/14903650/is-it-safe-to-call-ko-applybindings-without-any-parameters – skalpin
@skalpin Ich fürchte, ich weiß nicht, was das bedeutet.Es ist mein Verständnis, dass Sie ein View-Modell brauchen, damit alles auf der Seite mit Knockout passiert. Ist das nicht korrekt? –
yup @AlanStorm als ko ist mv'VM' - Sie brauchen ein ViewModel, wenn Sie nach '2-way' Bindung suchen (ich hoffe, Sie wissen). applyBinding erledigt die Aufgabe, ko zu aktivieren, wenn Sie viewModel als ersten Parameter übergeben, und gut seine Binds-Ansicht mit viewModel und behält die Änderungen in view & vm intact bei. Probe zum Spielen http://jsfiddle.net/LkqTU/30363/ –