Meine App enthält zwei Ansichten mit Vorlagen, Router, Modell und Sammlung.Wie rende ich eine Ansicht von einer Route?
root
js
collections
-collection.js
models
-model.js
routers
-router.js
templates
-add_item.html
-list.html
views
-add_item.js
-list.js
index.html
In router.js
, ich versuche zu einer untergeordneten Ansicht zu navigieren.
define([
'jquery',
'backbone',
'views/item'
], function($, Backbone, ItemView) {
'use strict';
return Backbone.Router.extend({
routes: {
'': 'list',
'list/add': 'addItem',
'list/edit/:id': 'editItem'
},
addItem: function() {
new ItemView();
}
});
});
Mit Blick auf den Anruf-Stack, sehe ich, dass mein Router auslöst. Die Vorlage meiner untergeordneten Ansicht wird jedoch nicht initialisiert.
item.js
Code:
return Backbone.View.extend({
template: _.template(itemTemplate),
events: {
'click #save': 'saveItem',
'click #cancel': 'cancel'
},
initialize: function() {
this.render();
},
render: function() {
this.$el.html(this.template);
return this;
}
});
Danke, es ist Hilfe. Aber die Ansicht "add_item.js" wird zusammen mit der Ansicht "list.js" auf demselben Bildschirm gerendert. Ich möchte nur Kind anzeigen add_item Vorlage rendern auf der Liste/hinzufügen und listen/bearbeiten /: ID Routen – fasenberg
@Gastello Sie müssen die Informationen aus meiner Antwort und wenden Sie es an Ihre Situation. Es kann nicht aus der Box heraus funktionieren, es sind nur Techniken und allgemeine Informationen, um die Frage zu beantworten. Ich kann nicht erraten, was Sie ohne ein klares [mcve] tun wollen. –
@Gastello werfen Sie einen Blick auf [TodoMVC] (http://todomvc.com/). Es gibt eine Demo von [Backbone + Require] (http://todomvc.com/examples/backbone_require/) ([Quelle] (https://github.com/tastejs/todomvc/tree/gh-pages/examples/backbone_require)). –