Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Routing mit AngularJS und Slim PHP

Ich verwende kein PHP, sondern NodeJs. Dies ist mir jedoch bei der Verwendung von Routing mit AngularJs und dem Backend aufgefallen.

Die erste Anfrage

Wenn ein Benutzer eine erste Anfrage für Ihre App stellt. Es durchläuft zuerst die PHP-Logik. (zB $app->get('/requests', 'getRequests') ). In meinem Fall besteht die Aufgabe des PHP/Back-Ends hier aus zwei Dingen:

  • Holen Sie sich Daten vom Back-End nur für SEO-Zwecke (die meisten Crawler führen keine client-js aus, daher müssen Sie diese Daten einfügen, bevor Sie die Seite an den Benutzer senden)

  • Am wichtigsten ist, dass Sie die Indexdatei zusammen mit allen JS in Ihrer Winkel-App angeben. Sobald der Benutzer das erhält, bootet Angular und Sie können loslegen.

Nachträgliche Anfragen

Sobald der Benutzer Ihre Angular-App geladen hat. Der Server (php) weiß nichts darüber, wie der Benutzer in Ihrer Winkel-App navigiert . Denken Sie daran, dass Angular clientseitig ist und versucht, die Anzahl der Anfragen an den Server zu reduzieren. Wenn der Benutzer zu "(#)/requests/1234" navigiert, wird .when('/requests/:id' ausgelöst route, aber nicht $app->get('/requests/:id', 'getRequest'); . Wenn Sie auf einen Endpunkt zugreifen möchten, der Daten von Ihrer Datenbank erhält, müssen Sie den $http verwenden service innerhalb von angle und tun Sie so etwas wie $http.get('requests/1234') und erhalten Sie die Daten auf diese Weise.

Lassen Sie mich wissen, wenn dies nicht klar war, stimmen Sie hoch/akzeptieren Sie, wenn es so war :)