当我尝试使用form.$setPristine
TypeScript时,它不起作用,调试说form
是未定义的.根据我的阅读,$scope.formName.$setPristine()
将形式设置为原始.要从$scope.formName
控制器访问,我将其作为ng.IFormController
属性添加到我的自定义范围界面.但是,当我调用时$scope.form.$setPristine()
,它不起作用,并且调试节目$scope.form
未定义.
打字稿:
interface IMyScope extends ng.IScope { employees: Array; employeeToAdd: IEmployee; addEmployee(): void; form: ng.IFormController; } class EmployeeAddController { static $inject = ['$scope', 'Employees']; constructor( $scope: IMyScope, $modalInstance: ng.ui.bootstrap.IModalServiceInstance, Employees: IUpdateableResourceClass ) { $scope.employees = new Array (); $scope.employeeToAdd = { Name: '', Email: '' }; $scope.addEmployee = function () { Employees.save(null, $scope.employeeToAdd, function (employee: IEmployee) { $scope.employees.push(employee); $scope.employeeToAdd.Email = ''; $scope.employeeToAdd.Name = ''; $scope.form.$setPristine(); // $scope.form is undefined }); }; } }
HTML:
Thomas Sobie.. 6
我在使用表单的应用程序中所做的是将表单对象传递给清除它的方法,而不是直接处理作用域.
$scope.clearAndResetForm = (form:ng.IFormController)=> { this.clearAndResetForm(form); }; private clearAndResetForm(form:ng.IFormController) { this.$scope.fieldOne = undefined; this.$scope.fieldTwo = undefined; form.$setPristine(); }
我不完全确定为什么我的代码会工作,而你的代码却没有.但希望这种方法可以帮助你.
我在使用表单的应用程序中所做的是将表单对象传递给清除它的方法,而不是直接处理作用域.
$scope.clearAndResetForm = (form:ng.IFormController)=> { this.clearAndResetForm(form); }; private clearAndResetForm(form:ng.IFormController) { this.$scope.fieldOne = undefined; this.$scope.fieldTwo = undefined; form.$setPristine(); }
我不完全确定为什么我的代码会工作,而你的代码却没有.但希望这种方法可以帮助你.