我正在嘗試從 AngularJS 控制器內部手動重置表單,但我無法使用$scope或controllerAs. 當我登錄時$scope.SupportForm,它回傳undefined。
HTML
<form name="supportForm" id="supportForm" novalidate>
<label for="message">Message</label>
<textarea name="message" id="message" model="$ctrl.formData.message" maxlength="5000" required></textarea>
<button type="submit" data-ng-click="$ctrl.submitForm($ctrl.formData)" data-ng-disabled="supportForm.$invalid">
Request support
</button>
</form>
控制器
function GeneralSupportController($scope, $state, $timeout, $stateParams, SupportService, $uibModal) {
var vm = this;
vm.formData = {};
vm.submitForm = submitForm;
function submitForm(data) {
console.log('$scope.supportForm : ', $scope.supportForm)
}
}
我也嘗試將 ngModel 添加到表單中,但它也不起作用。
題
知道為什么沒有將表單分配給范圍嗎?
uj5u.com熱心網友回復:
表單在您的代碼中分配給范圍。(https://plnkr.co/edit/7eYvApaW36DrRmvK >> 它有效)我想實際上您有以下內容:
<div ng-if="...">
<form name=...
在這種情況下,表單被分配給 ng-if 的嵌套范圍,而不是控制器范圍。您有幾種解決方案:
$ctrl.submitForm(supportForm...當您有多個表單時,傳遞表單以提交功能很有用<form name="$ctrl.supportForm"當你有一個表格時,將表格放入控制器中
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/312562.html
