Vraag Sails.js - Hoe een deel van een controller weergeven?


Ik heb een gedeeltelijke weergave met mijn aanmeldingsformulier. Ik zou het van een ajax vraag aan mijn controlemechanisme willen teruggeven.

Dit is het voorbeeld waarin ik mijn gedeeltelijke weergave zou retourneren:

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!'});
        }
    });
  },

11
2017-08-15 19:28


oorsprong


antwoorden:


Ah! Gevonden!

Als uw weergave een gedeeltelijke weergave is, geeft u dit gewoon op layout: null:

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

20
2017-08-16 02:54



Onderaan de pagina: http://sailsjs.org/#!documentation/views

Hoe zit het met het gebruik van meerdere lay-outs?

Express 3 heeft native ondersteuning voor lay-outs verwijderd. In Sails zijn we erin geslaagd dit bij te houden, maar we ondersteunen officieel niet meerdere lay-outs. Dat gezegd hebbende, in ieder geval in EJS, in plaats van het aangeven van je aangepaste lay-out met de lokale lay-out, moet je _layoutFile gebruiken:

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

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

};

Zeilt v0.9.7


5
2017-11-03 08:22