将$ scope.model子项初始化为“”或null

时间:2014-04-29 15:23:45

标签: javascript jquery json angularjs web

我正在做这个表单,我通过带有角度

的$ http请求发送信息
$http({
      method:"POST",
      url: "controllers/servicerequest.php", 
      data:
          {  
              servicerequest: $scope.formData 

          },
      headers: {'Content-Type': 'application/json'}

  }).success(function(response, status, headers, config){
      console.log(response);
      if(response.success){
          $window.open('reports/bol.php?bol='+response.id);
          bootbox.alert('Service Request '+response.id+' has been processed.');
      }
      else{
          bootbox.alert('Error message:' + response.message);
      }   
  });

你可以看到我发送了$ scope.formData中的所有数据,这两种方式的信息绑定

<div class="col-md-4">
  <input type="text" class="form-control shipper" ng-model="formData.shipperdescripcion" name="shipper" id="shipper" ui-autocomplete="shipper">
    <span class="help-block">
        {{formData.shipperlocation}}
    </span>
</div>

select: function(event, ui){
      $scope.formData.trailerid = ui.item.id;
      $scope.formData.trailerclave = ui.item.clave;
      $scope.formData.trailerdueno = ui.item.propietario;
      $scope.formData.trailer = ui.item.desc; 
    },

问题是我需要将所有表单数据子节点初始化为“”,当控制器加载其他时我的$ scope.formData将在发送请求时看起来像这样

{} 

例如,当我在输入中输入内容时,json会从中更改为

{
"shipperdescripcion": "BUENAVENTURA AUTOPARTES S.A. DE C.V.",
}

但我需要的是,在任何事情之前,控制器从一开始就像这样加载json这样

{
 "shipperdescripcion": "",
}     

1 个答案:

答案 0 :(得分:0)

在控制器代码中,您可以初始化对象,如下所示:

$scope.model = {
  shipperdescription: '', /* changing the spelling here to be correct */
  id: '',
  shipper: '',
  shipperlocation: ''

}

一些想法:如果可能的话,请考虑使用camelCase来提高代码的可读性。