Javascript 具有动态输入值的角度形式
我遇到了无法从输入中获取动态值的问题 这就是我想做的。当用户单击map时,angular将用lat/lon填充隐藏的表单字段,然后用户提交表单,最终导致控制器上缺少数据 以下是相关控制器代码: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) { $
$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();
}