ng-model没有按预期工作

时间:2017-11-11 18:33:24

标签: javascript angularjs google-maps google-maps-api-3 google-api

我正在使用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个字符在功能上传输,这在某些时候有效,有时它不能确定。我不知道究竟是什么问题。

2 个答案:

答案 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';