0

我在 if 语句中设置对象键时遇到了一些麻烦。我只想在特定条件下设置键:

angular.forEach($scope.variables, function(variable) {
  $scope.schema.properties[variable.varname] = {
    type: (function() {
      switch (variable.datatype) {
        case 'integer':
        case 'float':
          return 'number';
        case 'text':
        case 'radio':
        case 'datetime':
          return 'string';
        case 'checkbox':
          return 'array';
      }
    })(),
    title: variable.name
  };
  if (variable.datatype === 'datetime') {
    $scope.schema.properties[variable.varname].format = 'date';
  }
  if (variable.datatype === 'radio' || 'checkbox') {
    $scope.schema.properties[variable.varname].enum = variable.options;
  }
});

如果变量的数据类型是“日期时间”,我只希望我的对象有一个“格式”键,如果数据类型是“收音机”或“复选框”,我只想要一个“枚举”键。问题是,无论变量的数据类型如何,我的所有对象都来自此代码的两个键。

如果它们不是指定的数据类型,则键为空。但我需要钥匙根本不存在。我什至尝试添加:

} else {
    delete $scope.schema.properties[variable.varname].format;
    delete $scope.schema.properties[variable.varname].enum;
}

但是由于某种原因,这些对象仍然具有密钥。如果我在页面加载后删除控制台中的键,它就可以工作。但是我需要在页面加载时不存在键,因为我使用的是angular-schema-form,如果这些键存在,它会更改生成的表单。有任何想法吗?

4

0 回答 0