使用不同的URL传递视图模型

时间:2014-05-15 17:51:18

标签: boilerplatejs

我正在使用样板文件,我有这条路线,我的每个路线都有我的视图模型。

controller.addRoutes({
            "editor" : new ContentEditor(context),
            "quiz_editor" : new QuizComponent(context)
        });

我正在寻找如何将编辑器的viewmodel中的变量发送到测验编辑器的viewmodel。

我在这个例子中看到了答案:

controller.addRoutes({
'user/{id}' : new UserComponent(context),
});

但这对我不起作用,因为我不希望变量进入get。如果我这样做,我需要使用window.location转到网址。所以我不喜欢它,我也不需要它。

我正在寻找一种更好的方法。 希望你能帮助我,拯救我的生命。

谢谢。

1 个答案:

答案 0 :(得分:0)

我强烈建议您使用URL参数,原因如下:   - 允许使用为quiz_editor的状态添加书签(例如,在电子邮件中发送链接)   - 即使用户刷新页面,quiz_editor也会显示正确的状态   - 搜索引擎友好

如果您不想因某些奇怪的原因使用URL,可以使用“moduleContext.notify”和“moduleContext.listen”方法来使用事件总线进行通信。但这需要列出预先启动的模块。

另一种方法,如果使用中介对象(单例)作为要引用的不同组件的全局共享存储库。