当字段为空时,角度传递未定义

时间:2015-12-16 08:27:56

标签: javascript angularjs

我有一个包含强制和非强制字段的表单。如果我没有在非必填字段中输入任何数据,则默认情况下会传递undefined而不是null字符串/空对象/空数组。因此,此变量不会存储在DB中

当字段留空时,是否存在传递空字符串/对象/数组而不是未定义的通用方法?

2 个答案:

答案 0 :(得分:3)

您可以使用ngInit指令使用空格初始化模型。像

<input type="text" ng-model="testModel" ng-init="testModel=' '" /> 

这样,模型总是初始化为空格字符,并将在查询参数中发送,因此它将存储在数据库中。如果用户键入任何文本,则该值将在模型中更新。

答案 1 :(得分:0)

另一种解决方案是将所有模型值初始化为空字符串/数组或控制器中的任何内容。

因此,在您的控制器中,您可以将所有字段初始化为空值,例如

$scope.textFieldModel = " ";
$scope.testArray = [];
...

另一种方法是检查服务中的undefined值,如果找到undefined则将其初始化为空。

.service('testService', ['$http' function($http) {
          this.getAll = function(textFieldModel, testArray) {
            return $http({
                          method : 'GET',
                          url : "xyz",
                          params : {
                                    textFieldModel : textFieldModel || " ",
                                    testArray : testArray || []
                                   }
                          })
           }
}])