2015-10-27 5 views
0

Я новичок в durandal. Я просто задавался вопросом, есть ли способ передать переменные в модель корневого представления, подобно оболочке, либо через querystring, либо любым другим способом?Как передать переменные в оболочку или модель корневого представления

так main.js выглядит как ниже

define(['durandal/app'], function (app) { 
    app.configurePlugins({ 
    router: true 
    }); 

    app.start().then(function() { 
    app.setRoot('shell'); 
    }); 
}); 

Можете ли вы сделать что-то подобное тому, что написано ниже, в файле shell.js. Я попробовал это, но это не работает

function activate(variableIwantToPass) { 
    doSomething(variableIwantToPass); 
    configureRoutes(variableIwantToPass); 
    return router.activate(); 
} 

function configureRoutes(variableIwantToPass) { 
    var specialRoute = 'bar'; 
    if(variableIwantToPass == 'foo') { 
    specialRoute = foo; 
    } 
    var routes = [ 
    { 
     route: '', 
     moduleId: 'home' 
    }, 
    { 
     route: 'doThings/:specialRoute/', 
     moduleId: 'orchestrator' 
    } 
    ]; 

    router.makeRelative({ moduleId: 'viewModels'}).map(routes); 
} 

Я не могу позвонить в службу, чтобы получить данные в оболочке в качестве информации/переменной Я хочу передается на страницу, которая ведет к spa в качестве параметра querystring.

Итак, можно ли что-то передать в оболочку, или есть ли другая альтернатива для достижения того, что я хочу. Как создание cookie для хранения этой переменной и чтение ее через javascript в shell.js?

+0

«Можете ли вы так что-то вроде ниже в файле shell.js» не имеет для меня никакого смысла, не могли бы вы перефразировать это? – Shelvacu

ответ

0

В серийной версии ENV почти обязательно выполняется определенное вычисление до оболочки. Например, взгляните на Durandal.Auth на github и на то, как обрабатывается аутентификация и информация токена, хранящаяся в хранилище сеансов, и к ней обращаются в оболочке.