我一定做错了,但是我看不到......基本上如果我通过sails generate controller products
和文件/controllers/ProductsController
创建一个控制器/模型,我会在索引操作中添加一些变量如:
index: function(req, res) {
return res.view({
myOne: 'World?',
myvar: 'hello???',
title: 'Yeap'
})
},
当我检查localhost:1337 / products时,变量确实在模板中打印出来。请注意,我没有添加自定义视图,我的模板文件位于views/products/index.jade
(我使用的是Jade而不是EJS)。但是,如果我在/config/routes
中创建自定义视图,例如:
'/custom': {
view: 'custom',
controller: 'ProductsController',
action: 'customAction'
}
在我的ProductsController中,我有一个与前面描述的非常相似的行为:
customAction: function(req, res) {
return res.view({
myOne: 'Hello?',
myvar: 'World???',
title: 'Yeap'
})
},
我的模板中没有打印变量。该模板被称为正常,所以是控制器和动作(所以它似乎)。谁能解释我做错了什么?
答案 0 :(得分:8)
如果您想通过以下方式访问该视图,则可以选择将视图命名为与您的操作customAction.jade
相同的名称:
index: function(req, res) {
return res.view({
myOne: 'World?',
myvar: 'hello???',
title: 'Yeap'
})
},
或者您可以使用以下语法访问相同的视图/模板(例如index.jade):
customAction: function(req, res) {
return res.view('products/index', {
myOne: 'World?',
myvar: 'hello???',
title: 'Yeap'
})
},
我有一个使用ejs here的工作回购。