假设我有以下的Backbone视图,其中包含加载两个链接,一个链接显示“test1”,另一个链接显示“test2”。
我绑定了点击事件,并且获取被点击的链接的HTML内容并将其存储在clickedHtml变量中。
现在,这个视图是由Backbone路由器加载的。
当用户点击这两个链接(test1或test2)中的任意一个时,路由器将加载另一个名为“main”的视图。
那么,我应该如何将“clickedHtml”变量传递给那个视图?
我应该使用LocalStorage吗?
我应该像全局变量window.clickedHtml一样声明它吗?
还有更好的方法吗?
谢谢!
我绑定了点击事件,并且获取被点击的链接的HTML内容并将其存储在clickedHtml变量中。
现在,这个视图是由Backbone路由器加载的。
当用户点击这两个链接(test1或test2)中的任意一个时,路由器将加载另一个名为“main”的视图。
那么,我应该如何将“clickedHtml”变量传递给那个视图?
我应该使用LocalStorage吗?
我应该像全局变量window.clickedHtml一样声明它吗?
还有更好的方法吗?
谢谢!
// 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
}
});