Sails.js - 如何从控制器渲染部分?

时间:2013-08-15 19:28:53

标签: javascript node.js partial-views sails.js

我有一个包含登录表单的部分视图。我想将它从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!'});
        }
    });
  },

2 个答案:

答案 0 :(得分:20)

啊!发现它!

如果您的视图是部分视图,只需指定layout: null

res.view('home/login', {message: 'Login failed!', layout: null});

答案 1 :(得分:5)

页面底部:http://sailsjs.org/#!documentation/views

使用多个布局怎么样?

Express 3删除了对布局的原生支持。在Sails中,我们设法保持这种状态,但我们并未正式支持多种布局。 也就是说,至少在EJS中,您必须使用_layoutFile来代替使用本地布局指示您的自定义布局:

/**
 * HomeController
 */
module.exports = {

    index: function (req, res) {
        res.view({
            _layoutFile: '../layouts/other.ejs'
        });
    },

};

Sails v0.9.7