Ich habe eine Web-App. In dieser App habe ich eine Seite mit dynamisch erstellten bearbeitbaren Elementen. Ich habe den Bearbeitungsteil gut funktioniert. Mein Problem ist, ich bin nicht in der Lage, Änderungen aus dem Eingabeelement zurück zu meiner Datenstruktur zu binden. Ich habe eine Geige here. Mein entsprechenden Code sieht wie folgt aus:Bindung zwischen UI und JavaScript: Verschiedene Bereiche?
var options = [];
$(document).ready(function() {
$(function() {
$.material.init();
});
// Initialize the options
options.push({ id:1, html:'' });
options.push({ id:2, html:'' });
options.push({ id:3, html:'' });
var optionEditors = $('.option-editor');
for (var i=0; i<optionEditors.length; i++) {
$(optionEditors[i]).summernote({
airMode: true,
popover: {
air: [
['font', ['bold', 'underline', 'clear']]
]
},
callbacks: {
onInit: function() {
var editor = $('.note-editor');
editor.addClass('form-control');
editor.bind('DOMSubtreeModified', onUpdate);
$(this).summernote('code', ' ');
var editable = editor.find('.note-editable');
editable.attr('data-id', $(this).attr('data-id'));
editable.attr('data-index', $(this).attr('data-index'));
}
}
});
}
});
function onUpdate(option) {
try {
var id = choice.target.getAttribute('data-id');
var index = choice.target.getAttribute('data-index');
alert(id + ' : ' + index)
options[index].html = choice.target.innerHTML;
} catch (ex) {
}
}
Es ist fast wie die options
Variable in einem anderen Bereich ist. Es ist so seltsam. Grundsätzlich, wenn der Text in einem der Eingabefelder aktualisiert wird, sollte der Inhalt options
aktualisiert werden. So dass, wenn ich auf die Print
Schaltfläche klicke, kann ich den Inhalt der options
Variable im Konsolenfenster sehen. Ich bin mir nicht sicher, was ich falsch mache.
kann nicht sehen, wie das funktionieren würde. NOWHERE in Ihrer for() - Schleife greifen Sie auf Optionen zu oder ändern sie. Es gibt buchstäblich keine Verbindung von 'Optionen' zum Rest des Codes. –
@MarcB Die Idee ist, dass 'onUpdate' für die Aktualisierung der 'options'-Sammlung verantwortlich ist. Die Funktion 'onUpdate' wird ausgelöst, wenn eine Änderung vorgenommen wird. – user70192