2014-07-17 3 views
0

Я пытаюсь реализовать этот маршрут:метеорит железа маршрутизатор session.get не работает

@route "buildingSpaceTenant", 
    path: "/buildings/:_building_id/spaces/:_space_id/tenants/:_id/communications" 
    template: "tenant" 
    yieldTemplates: { 
     Session.get("current_tenant_subtemplate"): {to: "subTemplate"} 
    } 

но, видимо, я не могу использовать объект сеанса таким образом.

<runJavaScript-30>:148:11: client/routes/tenantsRoute.coffee:44: unexpected . (compiling client/routes/tenantsRoute.coffee) (at handler) 

Каков правильный путь?

ответ

1

Вы не можете использовать имена переменных в качестве ключей в объектном литерале. Если yieldTemplates может принять функцию (я не думаю, что он может), вы могли бы попробовать что-то вроде:

@route 'buildingSpaceTenant', 
    path: '/buildings/:_building_id/spaces/:_space_id/tenants/:_id/communications' 
    template: 'tenant' 
    yieldTemplates: -> 
    templateName = Session.get 'current_tenant_subtemplate' 
    obj = {} 
    obj[templateName] = to: 'subTemplate' 
    obj 

Я имел взглянуть на пример из this issue что означает, что вы могли бы попробовать перекрывая action, чтобы достичь того же конечный результат.

@route 'buildingSpaceTenant', 
    path: '/buildings/:_building_id/spaces/:_space_id/tenants/:_id/communications' 
    template: 'tenant' 
    action: -> 
    if @ready() 
     @render() 
     templateName = Session.get 'current_tenant_subtemplate' 
     @render templateName, to: 'subTemplate' 
    else 
     @render 'loading' 

Дайте эти идеи попробовать и дайте мне знать, как это происходит.

+0

Я подтверждаю, что на данный момент вы не можете связать функцию, чтобы дать шаблон. Но ваш обход делает эту работу. Благодаря! – ndemoreau

+0

Удивительный! Я рад, что один из тех работал. –

 Смежные вопросы

  • Нет связанных вопросов^_^