


Beispiele zur Erläuterung der View-Ansicht im Backbone.js-Framework von JavaScript_Grundkenntnisse
Die Ansicht im Backbone wird verwendet, um das Erscheinungsbild des Modells in Ihrer App widerzuspiegeln. Sie achten auf Ereignisse und reagieren entsprechend.
Im folgenden Tutorial werde ich Ihnen nicht erklären, wie Sie Modelle und Sammlungen an Ansichten binden, sondern mich darauf konzentrieren, wie Ansichten Javascript-Vorlagenbibliotheken verwenden, insbesondere _.template von Underscore.js.
Hier verwenden wir jQuery, um DOM-Elemente zu bearbeiten. Natürlich können Sie auch andere Bibliotheken wie MooTools oder Sizzle verwenden, aber die offizielle Dokumentation von Backbone empfiehlt die Verwendung von jQuery.
Nehmen wir als Nächstes das Suchfeld als Beispiel, um eine neue Ansicht zu erstellen:
SearchView = Backbone.View.extend({ initialize: function(){ alert("Welcome to Backbone!"); } }); var search_view = new SearchView();
Unabhängig davon, ob es sich um ein Modell, eine Ansicht oder eine Sammlung handelt, wird die Methode initialize() automatisch ausgelöst, wenn sie instanziiert wird.
el-Attribut
Das el-Attribut bezieht sich auf das DOM-Objekt, das im Browser erstellt wurde. Jede Ansicht verfügt über ein el-Attribut. Wenn es nicht definiert ist, erstellt Backbone ein leeres div-Element als el-Attribut.
Erstellen wir ein el-Attribut für View und setzen es auf #search_containe.
<div id="search_container"></div> <script type="text/javascript"> SearchView = Backbone.View.extend({ initialize: function(){ alert("Welcome to Backbone!"); } }); var search_view = new SearchView({ el: $("#search_container") }); </script>
Zu diesem Zeitpunkt bezieht sich das el-Attribut von View auf das div-Element mit der ID von search_container. Wir haben dieses div-Element nun gebunden, daher müssen sich alle Ereignisse, die wir auslösen möchten, in diesem div-Element befinden.
Vorlage laden
Backbone ist stark von Underscore.js abhängig, daher können wir kleine Vorlagen in Underscore.js verwenden.
Fügen wir nun eine render()-Methode hinzu und rufen sie in initialize() auf, sodass die render()-Methode automatisch ausgelöst wird, wenn die Ansicht initialisiert wird.
Diese render()-Methode lädt die Vorlage über jQuery in das el-Attribut der Ansicht.
<script type="text/template" id="search_template"> <label>Search</label> <input type="text" id="search_input" /> <input type="button" id="search_button" value="Search" /> </script> <div id="search_container"></div> <script type="text/javascript"> SearchView = Backbone.View.extend({ initialize: function(){ this.render(); }, render: function(){ // 通过 Underscore 编译生成模板 var template = _.template( $("#search_template").html(), {} ); //讲生成的模板加载到 el 属性中 this.$el.html( template ); } }); var search_view = new SearchView({ el: $("#search_container") }); </script>
Hörereignis hinzufügen
Wir verwenden das Ereignisattribut von View, um Abhörereignisse hinzuzufügen. Denken Sie daran, dass Abhörereignisse nur zu untergeordneten Elementen des el-Attributs hinzugefügt werden können. Fügen wir nun ein Listener-Ereignis zur Schaltfläche des untergeordneten Elements hinzu.
<script type="text/template" id="search_template"> <label>Search</label> <input type="text" id="search_input" /> <input type="button" id="search_button" value="Search" /> </script> <div id="search_container"></div> <script type="text/javascript"> SearchView = Backbone.View.extend({ initialize: function(){ this.render(); }, render: function(){ var template = _.template( $("#search_template").html(), {} ); this.$el.html( template ); }, events: { "click input[type=button]": "doSearch" }, doSearch: function( event ){ // 当 button 被点击时触发 alert alert( "Search for " + $("#search_input").val() ); } }); var search_view = new SearchView({ el: $("#search_container") }); </script>
Parameter an die Vorlage übergeben
Vorlage kann Parameter verwenden, die von View in der Form <%= %> übergeben werden.
<script type="text/template" id="search_template"> <!-- 通过 <%= %> 形式使用传来的参数 --> <label><%= search_label %></label> <input type="text" id="search_input" /> <input type="button" id="search_button" value="Search" /> </script> <div id="search_container"></div> <script type="text/javascript"> SearchView = Backbone.View.extend({ initialize: function(){ this.render(); }, render: function(){ //定义需要传递的参数 var variables = { search_label: "My Search" }; // 通过 Underscore 生成模板,同时传递参数 var template = _.template( $("#search_template").html(), variables ); // Load the compiled HTML into the Backbone "el" this.$el.html( template ); }, events: { "click input[type=button]": "doSearch" }, doSearch: function( event ){ alert( "Search for " + $("#search_input").val() ); } }); var search_view = new SearchView({ el: $("#search_container") }); </script>
Verarbeitung von DOM-Ereignissen
Eine sehr wichtige Funktion von Ansichten besteht darin, uns dabei zu helfen, Schnittstellenereignisse automatisch zu binden. Erinnern Sie sich, wie wir zuvor Ereignisse an Schnittstellenbezeichnungen gebunden haben? Es könnte so aussehen:
<p> <input type="button" value="Create" id="create" /> <input type="button" value="Read" id="read" /> <input type="button" value="Update" id="update" /> <input type="button" value="Delete" id="delete" /> </p> <script type="text/javascript"> function createData() { // todo } function readData() { // todo } function updateData() { // todo } function deleteData() { // todo } $('#create').on('click', createData); $('#read').on('click', readData); $('#update').on('click', updateData); $('#delete').on('click', deleteData); </script>
Dies ist ein typisches Beispiel für die Bindung von DOM-Ereignissen über jQuery. Wenn Sie komplexe Anwendungen entwickeln oder entwickelt haben, haben Sie möglicherweise versucht, diese Codes auf irgendeine Weise besser zu organisieren, um sie klarer und einfacher zu verwalten zu machen.
Das Ansichtsobjekt von Backbone bietet uns einen automatischen Bindungsmechanismus für Ereignisse, um die Beziehung zwischen DOM und Ereignissen besser aufrechtzuerhalten. Schauen wir uns das folgende Beispiel an:
<p id="view"> <input type="button" value="Create" id="create" /> <input type="button" value="Read" id="read" /> <input type="button" value="Update" id="update" /> <input type="button" value="Delete" id="delete" /> </p> <script type="text/javascript"> var MyView = Backbone.View.extend({ el : '#view', events : { 'click #create' : 'createData', 'click #read' : 'readData', 'click #update' : 'updateData', 'click #delete' : 'deleteData' }, createData : function() { // todo }, readData : function() { // todo }, updateData : function() { // todo }, deleteData : function() { // todo } }); var view = new MyView(); </script>
In diesem Beispiel haben wir vier Schaltflächen in ein Label mit der ID „view“ eingefügt und dieses Label mit der View-Klasse „MyView“ verknüpft.
Beim Definieren der Ansichtsklasse haben wir ein Ereignisattribut deklariert, das die Liste der Benutzerereignisse in der Ansicht darstellt und wie folgt beschrieben wird:
事件名称 选择器 : 事件处理函数
Das Ansichtsobjekt analysiert automatisch die Beschreibung in der Ereignisliste, dh es verwendet jQuery oder Zepto, um das vom Selektor beschriebene DOM-Objekt abzurufen, und bindet die Ereignishandlerfunktion an den Ereignisnamen. Diese Vorgänge werden automatisch abgeschlossen, wenn die Ansichtsklasse instanziiert wird. Wir können uns mehr um die Struktur der Ansichtsklasse selbst kümmern, anstatt bewusst darüber nachzudenken, wie Ereignisse gebunden werden.
Möglicherweise beschäftigt Sie eine andere Frage: Wenn die DOM-Struktur der Ansicht dynamisch generiert wird, stellt Backbone dann entsprechende Methoden zum dynamischen Binden und Entbinden von Ereignissen bereit?
Tatsächlich müssen Sie sich über dieses Problem keine Sorgen machen, da die Ereignisse in Ereignissen über die Methode „delegate()“ an das el-Element des Ansichtsobjekts und nicht an das vom Selektor beschriebene Element gebunden sind. Unabhängig davon, wie sich die Struktur innerhalb der Ansicht ändert, sind die Ereignisse in Ereignissen daher gültig.
(Wenn Sie mit jQuery vertraut sind, kennen Sie möglicherweise die von ihm bereitgestellte Methode „delegate()“. Diese Methode bindet das Ereignis tatsächlich an das übergeordnete Element und löst dann das Ereignis aus, indem sie das untergeordnete Zielelement während des Ereignis-Bubbling-Prozesses überprüft.)
Das Ansichtsobjekt bindet Ereignisse über die Methode „delegate()“, was bedeutet, dass wir uns nicht um die Auswirkungen von Änderungen in der Ansichtsstruktur auf Ereignisse kümmern müssen. Es bedeutet auch, dass das dem Selektor in Ereignissen entsprechende Element innerhalb der el-Methode liegen muss Element der Ansicht, andernfalls kann das gebundene Ereignis nicht wirksam werden.
Dennoch müssen wir in einigen Fällen Ereignisse manuell binden und entbinden. Das Ansichtsobjekt stellt die Methoden „delegateEvents()“ und „undelegateEvents()“ zum dynamischen Binden und Entbinden der Ereignisliste bereit. Sie können dazu die API-Dokumentation überprüfen. Erfahren Sie mehr über sie.
Ansichten und Daten rendern
Ansichten werden hauptsächlich für die Bindung von Schnittstellenereignissen und das Rendern von Daten verwendet. Das Ansichtsobjekt stellt jedoch nur eine Methode für das Rendern bereit, und es handelt sich um eine leere Methode ohne jegliche Logik, auf die nirgendwo verwiesen werden muss es, um unsere eigene Rendering-Logik zu implementieren.
Ansichten können viel Schnittstellenlogik enthalten. Es wird empfohlen, dass alle Ansichtsunterklassen die render()-Methode überladen und sie als Eingabemethode für das endgültige Rendern verwenden. Bei der Teamentwicklung kann das strikte Programmieren nach Spezifikationen dazu beitragen, dass andere Ihren Code besser verstehen und pflegen.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

Vergleichen Sie SpringBoot und SpringMVC und verstehen Sie deren Unterschiede. Mit der kontinuierlichen Weiterentwicklung der Java-Entwicklung ist das Spring-Framework für viele Entwickler und Unternehmen zur ersten Wahl geworden. Im Spring-Ökosystem sind SpringBoot und SpringMVC zwei sehr wichtige Komponenten. Obwohl beide auf dem Spring-Framework basieren, gibt es einige Unterschiede in Funktionen und Verwendung. Dieser Artikel konzentriert sich auf den Vergleich von SpringBoot und Spring

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Ich vermute, dass viele Schüler Wortsatzfähigkeiten erlernen möchten, aber der Herausgeber sagt Ihnen insgeheim, dass Sie die Wortansichten klar verstehen müssen. In Word2007 stehen den Benutzern 5 Ansichten zur Auswahl . Ansicht, Leselayout-Ansicht, Web-Layout-Ansicht, Gliederungsansicht und normale Ansicht, lernen wir heute diese 5 Wortansichten mit dem Editor kennen. 1. Seitenansicht Die Seitenansicht kann das Erscheinungsbild des Druckergebnisses des Word2007-Dokuments anzeigen, das hauptsächlich Kopfzeilen, Fußzeilen, Grafikobjekte, Spalteneinstellungen, Seitenränder und andere Elemente umfasst. Dies ist die Seitenansicht, die dem Druckergebnis am nächsten kommt. 2. Leselayoutansicht Die Leselayoutansicht zeigt Word2007-Dokumente und Office im Spaltenstil eines Buches an
