2016-09-21 38 views
0

Ich bin ein id von einem jade view seinen controller (Backend) zu senden, die Steuerung fragt dann mongodb und das Ergebnis wird zu einem neuen jade view gesendet - angular. Die Ergebnisse & Ansicht erscheinen, aber URL bleibt gleich (vorherige Ansicht), also wenn ich F5 die aktuelle Ansicht, lädt es die vorherige Ansicht neu.
So ist die Route: view->node->angular
Ideen?Knoten res.render Ansicht ändert aber url nicht

Jade Starteinrichtungsansicht

form(method="post") 
    input(type="hidden" name="id" value=cart._id) 
    input(type='hidden', name='_csrf', value=_csrf) 
    button.btn.product.btn-primary(type='submit', id=cart._id class='') 

Controller

exports.pushCart = (REQ, res) => {

if (passport.isAuthenticated) { 

    Order.findOne({ _id: req.body.id}) 
     .select('-_id productOrder') 
     .exec(function (err, orderObj) { 
      if(!err) { 
       var productOrder = orderObj.productOrder; 

       res.render('store/cart', { 
        title: 'MyCart', 
        angularApp: 'storeApp', 
        products: productOrder 
       }); 
      } 
     }); 

} else { 
    res.redirect('/login'); 
} 

};

Mongoose populate subdoc

+0

Sie müssen sich ändern 'res.redirect verwenden ('/ some/path')', wenn Sie wollen die URL, die geändert werden soll – idbehold

+0

@idbehold, nicht in diesem Fall, 'res.render()' wird die Ansicht mit Daten an sie übergeben, 'res.redirect()' wird einen Benutzer auf eine andere Seite umleiten (an dem Punkt, wo die Anfrage von vorne beginnt) – Jadeye

+0

Ja, das ist richtig. Sie können entweder eine Ansicht als Antwort auf die POST-Anfrage rendern (die URL im Browser bleibt gleich) oder Sie können umleiten, wodurch die URL im Browser geändert wird. Sie können beides nicht von der Serverseite aus tun. – idbehold

Antwort

1

Sie müssen umgeleitet werden, wenn Sie die URL wollen wie diese

res.redirect('/some/path') 
Verwandte Themen