[英]Submitting a form in AngularJS?
我有一個像這樣的模板:
<div><form id="appForm" method="POST" action="{{form.formActionAttr}}">
<table class="form-table">
<tr>
<td>
<input name="input1" type="hidden" value="{{form.input1}}"/>
</td>
</tr>
<tr>
<td>
<input name="input2" type="hidden" value="{{form.input2}}"/>
</td>
</tr>
</table>
</form></div>
這是控制器:
function SamlFormController($scope, $sce, metadataService) {
$scope.form = {};
$scope.form.formActionAttr = $sce.trustAsResourceUrl('some.url');
$scope.form.input1 = 'input1';
$scope.form.input2 = 'input2';
$scope.submitForm = function() {
document.getElementById('appForm').submit();
};
$scope.submitForm();
}
我的目的是:控制器運行SubmitForm()方法,該方法將HTTP POST請求發送到form.formActionAttr url。
但是,使用上述代碼,在調用$ scope.submitForm()時,尚未填充action =“ {{form.formActionAttr}}”。
如何解決此問題?
提前致謝 :-)
問題在於,只有在應用程序真正初始化之后才能設置url。 因此,您需要將更改推到后期。 您可以使用$ timeout服務輕松完成此操作:
function SamlFormController($scope, $sce, $timeout, metadataService) {
$scope.form = {};
$scope.form.formActionAttr = $sce.trustAsResourceUrl('some.url');
$scope.form.input1 = 'input1';
$scope.form.input2 = 'input2';
$scope.submitForm = function() {
document.getElementById('appForm').submit();
};
$timeout(function() { $scope.submitForm() });
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.