好的,我正在尝试从路由器传递变量,以有条件地要求基于路由的某些视图/模板。
以下是一个示例路线:
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
我想它不需要通过路由器...因为我不认为这是可能的。正在我加载路由器。
只是想知道如何实现这一目标。
谢谢!
答案 0 :(得分: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
});
});
});