Ответ 1
Ах! Найди его!
Если ваше представление является частичным видом, просто укажите layout: null
:
res.view('home/login', {message: 'Login failed!', layout: null});
У меня есть частичный вид, содержащий мою регистрационную форму. Я хотел бы сделать это с помощью ajax-вызова моего контроллера.
Это пример, где я бы возвращал свой частичный вид:
postlogin: function (req,res) {
var username = req.param('username');
var password = req.param('password');
User.find({
username: username,
password: password.salt()
}).done(function(err, users){
if(users.length == 1){
// Here I want to return a partial view, not a view
res.view('home/login', {message: 'Login success!'});
}else{
// Here I want to return a partial view, not a view
res.view('home/login', {message: 'Login failed!'});
}
});
},
Ах! Найди его!
Если ваше представление является частичным видом, просто укажите layout: null
:
res.view('home/login', {message: 'Login failed!', layout: null});
Внизу страницы: http://sailsjs.org/#!documentation/views
Express 3 удалил встроенную поддержку макетов. В Sails нам удалось сохранить это, но мы официально не поддерживаем несколько макетов. Тем не менее, по крайней мере, в EJS вместо указания вашего пользовательского макета с локальным расположением, вы должны использовать _layoutFile:
/**
* HomeController
*/
module.exports = {
index: function (req, res) {
res.view({
_layoutFile: '../layouts/other.ejs'
});
},
};
Паруса v0.9.7