我使用Backbone + RequireJS开发应用程序。当用户链接到网页时,他可以选择其中一个产品(渲染第一个视图)。选择后,下一页应根据选择呈现第二个视图。也就是说,当渲染第二个视图时,它应该知道用户在第一个视图中的选择。代码如下所示:
for viewA.js:
define(['jquery','backbone','underscore','text!template/ViewA.html'],function($,Backbone,_,templateA) {
// render for view A
// switch to view B after user do selection
});
for viewB.js:
define(['jquery','backbone','underscore','text!template/ViewA.html'],function($,Backbone,_,templateA) {
// render for view B according to selection in view A
});
除了使用全局变量之外,还有其他正式方法可以实现吗? 我做了一些研究,似乎一个解决方案是使用事件聚合器在第一个视图中触发并监听第二个视图。但是,在当前场景中,当在第一个视图中触发用户选择事件时,第二个视图未实例化(如viewA.js中所示,其中viewB还未包含viewB)。在viewA.js中包含viewB以使事件聚合器正常工作看起来很奇怪......