Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有动态输入值的角度形式_Javascript_Html_Angularjs_Forms_Data Binding - Fatal编程技术网

Javascript 具有动态输入值的角度形式

Javascript 具有动态输入值的角度形式,javascript,html,angularjs,forms,data-binding,Javascript,Html,Angularjs,Forms,Data Binding,我遇到了无法从输入中获取动态值的问题 这就是我想做的。当用户单击map时,angular将用lat/lon填充隐藏的表单字段,然后用户提交表单,最终导致控制器上缺少数据 以下是相关控制器代码: $scope.formData = {}; $scope.submit = function(addressform) { addressService.createAdddress($scope.formData).then(function(result) { $

我遇到了无法从输入中获取动态值的问题

这就是我想做的。当用户单击map时,angular将用lat/lon填充隐藏的表单字段,然后用户提交表单,最终导致控制器上缺少数据

以下是相关控制器代码:

$scope.formData = {};

    $scope.submit = function(addressform) {
      addressService.createAdddress($scope.formData).then(function(result) {
        $scope.addressResponse = result;
      }, function(err) {
          alert(err);
      });
    }

    $scope.userSelectedPoint = function () {
      $scope.lat = map.getLat();
      $scope.lon = map.getLon();
      $scope.address = map.getAddress();
    }
这是相关的HTML:

<form id="address_form" name="addressform" ng-submit="submit(addressform)">

   <input "lattitude" name="lattitude" type="hidden" ng-model="formData.lattitude" value="{{lat}}">
   <input id="longitude" name="longitude"type="hidden" ng-model="formData.longitude" value="{{lon}}">

   <p>Selected Address: {{address}}</p>
</form>

我做错了什么?为什么我的控制器中的
formData
是空的,而从我粘贴的屏幕截图中可以看出,值显然是在HTML中设置的?

您需要将值分配给
ng model
变量,而不是

作为

在angular中,如果您向一个变量提供一个值,并使用
ng model
将该变量分配给输入,那么输入就是变量的值,anf如果我们更改输入值,变量值就会更改


因此,将
formData
对象的
latitude
属性指定给输入。这意味着如果您更改了
$scope.formData.latitude
输入值,则该值将发生更改。

在angular中,您不能使用value属性。您必须使用经度/纬度初始化formData对象。因此,您还需要任何假隐藏字段。你不需要这个角度的图案

$scope.formData
Object {}
<input "lattitude" name="lattitude" type="hidden" ng-model="formData.lattitude" />
<input id="longitude" name="longitude"type="hidden" ng-model="formData.longitude" />
$scope.formData = {};
$scope.userSelectedPoint = function () {
  $scope.formData.lattitude = map.getLat();
  $scope.formData.longitude  = map.getLon();
  $scope.formData.address = map.getAddress();
}