我正在开发一个框架,开发人员可以在外部模块中实现子模板。我想稍后在父模板中包含该模板。
这是一个基本的模板架构:
─使命(父模板)
├─成功使命(儿童模板)
├─任务失败(儿童模板)
└─玩任务(儿童模板)
父模板对每个人都是一样的。子模板由贡献者实现,并始终显示在不同的时刻(任务状态)。
我在一个模板文件中尝试了两种方法。
实施"块"模式:
block mission_play
h2 Hello world!
p Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
block mission_succeed
h2 Congratulations!
p You won buddy!
block mission_failed
h2 Oh my gosh, dude, you did something realy bad
p You should try again
那个人不会工作因为我没有得到任何extend layout
指令(因为每个子模板都是外部模块所以我无法使用)。 有没有办法手动指示玉哪个模板扩展?
在mixin中实现每个子模板:
mixin mission_introduction(mission)
h2 Hello world!
p Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
mixin mission_succeed(mission)
h2 Congratulations!
p You win buddy!
mixin mission_failed(mission)
h2 Oh my gosh dude, you did something realy bad
p You should try again
我打算在其父级中包含该模板,但Jade不允许在include的路径中使用表达式。这就是为什么我尝试直接在父玉模板中解释玉代码,但我没有找到如何。我甚至尝试将其包含在partial
function中,但我可以使用该模块而不禁用Express中的默认视图继承策略。
所以,我错了?这座建筑之王的最佳策略是什么?
干杯!
答案 0 :(得分:3)
我终于找到了一个好策略:
case mission.state
when "game"
block mission_introduction
h2 Hello world!
p Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
when "succeed"
block mission_succeed
h2 Congratulations!
p You win buddy!
when "failed"
block mission_failed
h2 Oh my gosh dude, you did something realy bad
p You should try again
干杯!