2016-07-19 2 views
0

저는 AngularJS 시동기입니다. 사용자를 새 페이지로 리디렉션하려고합니다. [업데이트 : 완전히 새로운 페이지이고 외부 URL이 될 수 있습니다.] 사용자가 단추를 클릭하면 데이터가 표시됩니다.AngularJS - 새 URL에 데이터 제출

jQuery를 사용하면 클릭 핸들러 함수에서 프로그래밍 방식으로 양식을 작성한 다음 필드를 추가하고 양식을 새 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(); 

이 방법을 구현하는 방법이 있습니까?

+1

가'새로운 page' 정의 DOM에서 요소를 선택하는 데 사용할 수있는 선택기에 그러나 더 제한됩니다. 각도 라우터를 사용하면 단일 페이지 앱 내에서 무한 경로를 가질 수 있으며 새로로드 된 경로에서 사용할 수 있도록 서비스중인 데이터를 저장할 수 있습니다. 또는 ... 이것은'action' 폼에 기초한 완전한 페이지 재로드입니까? – charlietfl

+0

완전히 새로운 페이지입니다. 감사. – thermostat

답변

0

angular.element()은 jQuery.js가 angular.js보다 먼저 페이지에 포함 된 경우 실제로 전체 jQuery 라이브러리를 사용하는 jQuery 메서드의 하위 집합입니다.

jQuery를 사용하지 않고 이미 표시된 모든 메소드가 포함되어 있으므로 $angular.element으로 바꿔서 동일한 작업을 수행 할 수 있어야하고 몇 가지 사소한 수정이 필요합니다.

그것은 당신이

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();