我正在使用angularJs 1.6并且在带有ng-model的html上有两个输入类型元素。
在ng-click
我有一个函数将这些值通过函数传递给我的控制器
<div>
<input type="text" placeholder="From" id="fromlocation" name="mfrom" data-ng-model="mfrom">
<input type="text" placeholder="To" id="tolocation" name="mto" data-ng-model="mto">
<input type="button" class="button" value="Estimate" data-ng-click="findDistance(mfrom,mto)">
</div>
控制器上的功能
$scope.findDistance=function(source, destination)
{
alert("source " + source + "destination " + destination);
$scope.errorStatus = "false";
if ((source == undefined || source == null || source == '') || (destination == undefined || destination == null || destination == ''))
{
$rootScope.setInvalidError();
}
else
{
$scope.source_address = source;
$scope.destination_address = destination;
$scope.initMap();
$scope.getEstimatePrice(source, destination);
}
}
这里的问题是当我在控制器中调试函数时,我没有得到输入类型中输入的完整文本。只有4个字符在功能上传输,这在某些时候有效,有时它不能确定。我不知道究竟是什么问题。
答案 0 :(得分:0)
试试这个:
<div>
<input type="text" placeholder="From" id="fromlocation" name="mfrom" data-ng-model="mfrom">
<input type="text" placeholder="To" id="tolocation" name="mto" data-ng-model="mto">
<input type="button" class="button" value="Estimate" data-ng-click="findDistance()">
</div>
这样,您将必须访问处理函数内的那些输入变量。另外,尝试在另一个控制器的功能中检查是否正在修剪$scope.mfrom & $scope.mto
(可能是?)。
$scope.findDistance=function()
{
let source = $scope.mfrom; //direcly obtained
let destination = $scope.mto;
//The rest of the code
}
答案 1 :(得分:0)
尝试这样的事情
on html
<div>
<input type="text" placeholder="From" id="fromlocation" name="mfrom" ng-model="mfrom">
<input type="text" placeholder="To" id="tolocation" name="mto" ng-model="mto">
<input type="button" class="button" value="Estimate" ng-click="findDistance(mfrom,mto)">
</div>
on js
$scope.mfrom = 'value1';
$scope.mto = 'value2';