Допустим, у меня есть следующий вид на базовой линии, который загружает две ссылки, одну с текстом-якорем «test1», а другой с текстом-якорем «test2».Передача данных с одного вида базовой линии на другой
Я связываю событие щелчка, и я получаю HTML-ссылку, которая была нажата, и сохраните ее внутри переменной clickedHtml.
Теперь этот вид загружается маршрутизатором базовой линии.
Когда пользователь нажимает на одну из двух ссылок (test1 или test2), маршрутизатор будет загружать другое представление под названием «main».
Теперь, как передать переменную «clickedHtml» в это представление?
Должен ли я использовать LocalStorage?
Должен ли я объявить его глобально, как window.clickedHtml?
Есть ли лучший способ?
Ty!
// file: views/test.js
define([
'jquery',
'underscore',
'backbone'
], function($, _, Backbone) {
var Test = Backbone.View.extend({
el : '.test',
initialize : function() {
var that = this;
that.$el.html('<a href="#/main">test1</a><br /><a href="#/main">test2</a>');
},
events : {
'click .test a' : 'click'
},
click : function (e) {
var clickedHtml = $(e.target).html();
}
return Test;
});
Вот мой маршрутизатор:
// file: router.js
define([
'jquery',
'underscore',
'backbone',
'views/test',
'views/main'
], function ($, _, Backbone, Test, Main) {
var Router = Backbone.Router.extend({
routes: {
'' : 'home',
'test' : 'test'
}
});
var initialize = function() {
var router = new Router();
router.on('route:home', function() {
var main = new Main();
});
router.on('route:test', function() {
var test = new Test();
});
Backbone.history.start();
}
return {
initialize : initialize
}
});
У вас могут быть оба вида в одном представлении. Тогда вы можете получить доступ ко всем vars двух подзонов в главном представлении. – crenckly