****注意我删除了一些其他功能,以便更快地读取代码.我无法清除表格.当我点击带有取消功能的按钮时.我以为我可以设置默认表单,但这没有什么区别.
<form name="myForm" novalidate ng-submit="submit()">
<table class="mealCost">
<!-- descriptions -->
<tr>
<td> Base Meal Price: </td>
<td><input type="number" name="price" ng-model="mealPrice" required></td>
</tr>
<!-- waiter puts in the info -->
<tr>
<td> Tax Rate: % </td>
<td><input type="number" step="0.01" name="tax" ng-model="mealTax" required></td>
</tr>
<tr>
<td> Tip Percentage: % </td>
<td><input type="number" name="tip" step="0.01" ng-model="tipPercent" required></td>
</tr>
</table>
<p class="userResponse">
<input type="submit" value="Submit">
<!-- <input id="cancel" type="submit" value="Cancel" ng-submit="cancel(original)"> -->
<button ng-click="cancel()">Start Over</button>
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的javascript我试图使用按钮命令将我的表单设置为$ setPristine并点击.我设置默认表单会有所帮助,但提交时没有任何反应
var app = angular.module('myApp',[]).
controller('costController', function($scope) {
// $scope.ready= false;
$scope.mealPrice ="" ;
$scope.mealTax = 0.05;
$scope.tipPercent =0.05;
// possibly could do
var defaultForm={
price: "",
tax: "",
tip:""
}
$scope.cancel = function() {
$scope.myForm.$setPristine();
$scope.user = angular.copy(defaultForm);
console.log('empty');
}
Run Code Online (Sandbox Code Playgroud)
Jas*_*euw 27
我觉得你错了.
$ setPristine:
"可以调用此方法来删除'ng-dirty'类并将表单设置为其原始状态(ng-pristine类).此方法也将传播到此表单中包含的所有控件."
所以这只清除了类而不是$ scope变量.你确实重置了$ scope.user变量,可以说:
添加用户.' 在Html中的每个模型前面
ng-model="user.tipPercent"
ng-model="user.mealTax"
ng-model="user.mealPrice"
Run Code Online (Sandbox Code Playgroud)
并在你的JS中替换它:
// $scope.ready= false;
$scope.mealPrice ="" ;
$scope.mealTax = 0.05;
$scope.tipPercent =0.05;
// possibly could do
var defaultForm={
price: "",
tax: "",
tip:""
}
$scope.cancel = function() {
$scope.myForm.$setPristine();
$scope.user = angular.copy(defaultForm);
console.log('empty');
}
Run Code Online (Sandbox Code Playgroud)
对此:
var defaultForm = {
mealPrice : "",
mealTax : 0.05,
tipPercent : 0.05
}
$scope.user = angular.copy(defaultForm);
$scope.cancel = function () {
$scope.myForm.$setPristine();
$scope.user = angular.copy(defaultForm);
console.log('empty');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36475 次 |
| 最近记录: |