2016-07-19 13 views
0

Ich bin ein AngularJS Starter. Ich versuche, Benutzer auf eine neue Seite umzuleiten [Update: Es ist eine völlig neue Seite, könnte eine externe URL sein] mit Daten, wenn der Benutzer auf eine Schaltfläche klickte.AngularJS - Daten an eine neue URL senden

Mit jQuery, in der Click-Handler-Funktion, konnte ich ein Formular programmgesteuert erstellen und fügte dann die Felder hinzu, und senden Sie das Formular an die neue URL.

var form$ = $('<form></form>').attr('action', 'http://example.com/test').attr('method', 'post'); 
var input$ = $('<input />').attr('type', 'hidden').attr('name', aName).attr('value', aValue); 
form$.append(input$); 
form$.appendTo('body').submit(); 

Gibt es einen Winkelweg, um dies zu erreichen?

+1

definieren 'neue page'. Wenn Sie einen eckigen Router verwenden, können Sie unbegrenzte Routen innerhalb einer einzelnen Seiten-App verwenden und Daten im Service speichern, um sie auf einer neu geladenen Route zu verwenden. Oder ... ist das ein kompletter Seiten-Reload basierend auf der Form 'action'? – charlietfl

+0

Es ist eine komplett neue Seite. Vielen Dank. – thermostat

Antwort

0

angular.element() ist eine Teilmenge der jQuery-Methoden, die tatsächlich die vollständige jQuery-Bibliothek verwenden, wenn jQuery.js in der Seite vor angular.js enthalten ist.

Ohne jQuery enthält es bereits alle Methoden gezeigt, so dass Sie in der Lage sein sollten, das gleiche zu tun, indem Sie einfach $ durch angular.element und einige kleinere Verbesserungen ersetzen.

Es ist jedoch beschränkt auf Selektoren Sie

in Elemente auswählen dom können
var form$ = angular.element('<form></form>').attr('action', 'http://example.com/test').attr('method', 'post'); 
var input$ = angular.element('<input />').attr('type', 'hidden').attr('name', aName).val(aValue); 
form$.append(input$); 
angular.element(document).find('body').append(form$); 
form$[0].submit();