2016-06-07 25 views
1

so entwerfe ich eine einzelne Seite Anwendung in Angular und habe es alles falsch gemacht! Ich bin derzeit wieder tun es mit Routing, was bedeutet, dass statt auf dem Server $ajax oder $http Anrufe zu tun, ich möchte etwas wie folgt verwenden:Winkelrouten senden Daten an den Server

 .when('/contact', { 
      templateUrl : '/contentMore', 
      controller : 'contentController' 
     }); 

Mein Problem ist, mit dem templateUrl.

Derzeit mein Code sieht wie folgt aus:

$.ajax({ 
    url: "http://example.com/contentMore", 
    type: "GET", 
    data: {request:"Section_I_Part_1_Complete",part:"1"}, 
    success: function(data){ 
     $scope.robot.ajax = true; 
     $scope.robot.sectionStayActiveI = false; 
     theData = data; 
     $scope.$apply();  
    $scope.html = theData; 
     $('#shyBox').mCustomScrollbar({ 
     theme:"dark" 
     });  
     $scope.background.push("I");  
     } 
    }); 

Alle meine Inhalte aus dem gleichen URL serviert wird, http://example.com/contentMore und was serviert wird durch die Daten bestimmt, die mit ihm in der Ajax-Anfrage gesendet wird. Wenn die templateUrl nur /contentMore ohne diese Daten ist, dann wird nichts geliefert, also wie gebe ich diese Daten weiter?

Codiere ich nur die URL oder etwas? Wurde auch die TemplateUrl geladen, wird dies als eine Form einer Ajax-Anfrage betrachtet?

Danke!

+0

Sie sollten beginnen mit NUR '$ http' und NICHT' jQuery.ajax() '- Bei Verwendung von' $ http' angular "weiß", wenn die Anfrage Versprechen gelöst wurde - Dies wird es ermöglichen, einen Digest-Zyklus auszulösen und aktualisiere die Bindungen in deiner App –

+0

@AlonEitan Ja danke, ich habe das gelernt lol. Aber muss ich '$ http' auch verwenden, wenn ich' templateUrl' im Routing verwende? Mein Hauptproblem ist jetzt, dass ich kein Routing habe, so dass meine Benutzer den Zurück-Knopf drücken und auf eine komplett andere Seite gehen. –

+0

Sie können die Vorlage dynamisch mit [ui-router] (https://github.com/angular-ui/ui-router/wiki) bereitstellen, wodurch dem Basis-eckigen $ routeProvider zusätzliche Funktionalität hinzugefügt wird. [Lesen Sie dies] (https://github.com/angular-ui/ui-router/wiki#templates) wenn @ Chic's Antwort nicht ausreichend ist. Und für Ihre Frage über die Verwendung von immer "$ http" - Die Antwort ist immer US $, jQuery gibt es nur als letztes Mittel und sollte nur innerhalb einer Direktive verwendet werden –

Antwort

1

Die VorlageUrl ist für (in der Regel statische) HTML zu bekommen. Die URL sollte alle Informationen zu der Vorlage enthalten, die Sie erhalten möchten. Angular ruft diesen Inhalt über eine XHR-Anforderung ab.

+0

Also kodiere ich die URL oder etwas? So funktioniert eine 'GET'-Anfrage trotzdem, wenn Sie zusätzliche Daten korrekt senden? Es hängt es nur irgendwie an die URL an? Ist das die richtige Methode? –

+0

Ja, ich möchte, dass die URL genügend Informationen enthält, um zu identifizieren, welche Vorlage angezeigt werden soll. Wenn eckig eine 'GET'-Anfrage macht, weiß Ihr Server, was er zurückgeben soll. Die Anwendung, an der ich arbeite, hat statische Vorlagen, so dass der Server nur die Datei zurückgibt. Aber da dir schon eine dynamische URL-Encodierung möglich ist, ist es wahrscheinlich am einfachsten – Chic

Verwandte Themen