我正在尝试实施这条路线:
@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)
什么是正确的方式?
答案 0 :(得分: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'
尝试一下这些想法,让我知道它是怎么回事。