Angularjs 用角扫除田野?
当用户单击单选按钮时,我运行:Angularjs 用角扫除田野?,angularjs,Angularjs,当用户单击单选按钮时,我运行: $scope.clientClick = function() { //do stuff } 我有一个表单,我想用上面的方法清除表单上的一半字段 我已经做了: $scope.clientClick = function() { $scope.entry.first_name = ''; $scope.entry.last_name = ''; $scope.entry.email = ''; $scope.entry
$scope.clientClick = function() {
//do stuff
}
我有一个表单,我想用上面的方法清除表单上的一半字段
我已经做了:
$scope.clientClick = function() {
$scope.entry.first_name = '';
$scope.entry.last_name = '';
$scope.entry.email = '';
$scope.entry.tel = '';
$scope.entry.gender = '';
$scope.entry.job = '';
$scope.entry.age = '';
}
但是有没有比再次列出每个字段更简单的方法呢
function initObject(obj) {
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
switch(typeof obj[i]){
case 'string':
obj[i] = '';
break;
case 'number':
obj[i] = 0;
break;
}
}
}
}
使用此功能。永远不要这样做$scope.entry={}或$scope.entry.name=null,这样更安全,而且当代码的某些部分需要类型时,不会出现不必要的错误。只需将字符串设置为更简单。我将使用$scope.entry=null或$scope.entry={}
使代码简单易读。简短回答
长话短说
在JavaScript中,可以通过两种方式访问属性:
obj.prop
obj['prop']
您可以保留一个包含要清除的属性的字符串列表,然后只需依次清除每个属性就可以对其进行迭代。我建议,如果您对单选按钮有依赖关系,则视图模型应该反映出可以清除它:
$scope.entry.dependant = { first_name: '' ... }
$scope.clientClick = function() {
$scope.entry.dependant = {};
}
我会做一些事情,比如:
你不能只清除$scope.entry吗?@smk不,它清除了整个表单,我只想清除其中的一部分。所以我知道没有办法。这就产生了错误:TypeError:Object没有方法“推送”修复了错误,但这仍然不起作用,它会删除整个表单。它不应该检查演示。你的演示没有反映问题。它会清除整个数据集,例如在您的演示中,单击“重置”时姓氏将保留在那里。
$scope.entry.dependant = { first_name: '' ... }
$scope.clientClick = function() {
$scope.entry.dependant = {};
}
$scope.initial = [
{
first_name : '',
last_name : '',
email : '',
tel : '',
gender : '',
job : '',
age : ''
}
];
$scope.clientClick = function() {
angular.copy($scope.initial, $scope.entry);
});