1

好的,我正在尝试从路由器传递一个变量,以根据路由有条件地需要某些视图/模板。

这是一个示例路线:

app_router.on('route:showDashboardView', function () {
        var dashboardView = new DashboardView({pageID:1, gridID:1, modal_view:'views/modalView'});
    });

这是一个示例视图定义:

define([
'jquery',
'underscore',
'backbone',
'routers/router',
'text!templates/_header.html',
'text!templates/_dashboard.html',
'models/UserSetupModel',
'collections/UserSetupCollection',
'collections/PageSetupCollection',
'views/globalView',
'modal',
'validation',
 //I would like the "modal_view" here.
], function ($, _, Backbone, Router, HeaderTemplate, DashboardTemplate, UserSetupModel, UserSetupCollection, PageSetupCollection, GlobalView, modal, validation, ModalView){
    'use strict'; 
//...etc

我想它不需要通过路由器......因为我认为这是不可能的。当我加载路由器时。

只是想知道如何实现这一点。

谢谢!

4

1 回答 1

2

您将无法在运行时更改视图的依赖关系。但是您可以在实例化视图并将类作为参数传递之前需要modal_view定义。就像是

app_router.on('route:showDashboardView', function () {
    require(['views/modalView'], function(ModalView) {
        var dashboardView = new DashboardView({
            pageID: 1,
            gridID: 1, 
            modal_view: ModalView
        });
    });
});
于 2013-05-25T10:58:42.927 回答