我正在创建一个可点击的表单,根据'td'行JSON的数据填充另一个表单。表单周一和周二需要两个输入。我使用原始重置(清除)表单,并且工作正常。我无法在第二次搜索时清除表单。示例:键入星期一,单击搜索,单击星期一,现在键入星期二...当我单击搜索时,我希望删除星期一的信息。我该怎么做呢? Fiddle。
Reset Function:
var clearResults = angular.copy($scope.results);
var clearRowItems = angular.copy($scope.rowItems);
$scope.reset = function ()
{
$scope.enteredValue = '';
$scope.results = '';
$scope.results = angular.copy(clearResults);
$scope.rowItems = angular.copy(clearRowItems);
$scope.personForm.$setPristine();
};
答案 0 :(得分:0)
添加
$scope.enteredValue = '';
到clickButton
函数的底部。
因此,一旦clickButton
函数执行其操作,上面的代码将清除视图中的搜索字段(在这种情况下,将其设置为空字符串)。
这有两种方式 - 当您在表单中键入内容时,它会更改enteredValue
的值,但是 - 如果更改控制器中的enteredValue
,它将在视图中自动更新。
它被称为双向数据绑定: https://docs.angularjs.org/tutorial/step_04
答案 1 :(得分:0)
当您进行搜索时,您只会将更多项目推送到结果数组中。您没有清除之前的结果数组,所以每次点击搜索时,它都会不断添加到'结果'
一个简单的解决方案就是重置'结果'到一个空数组,以清除它在“点击”按钮的顶部。功能
答案 2 :(得分:0)
如果我正确理解您的问题,调用.reset()将清除给定方案的先前值:
示例:键入星期一,单击搜索,单击星期一,现在键入星期二...当我单击搜索时,我希望删除星期一的信息。
$scope.clickButton = function (enteredValue) {
// clear previous values 'Monday' information
// from above scenario'
$scope.reset();
$scope.items = $scope.stuff;
.
.
}
希望这有帮助。