用户输入无法更改输入编号

时间:2015-02-25 21:35:17

标签: javascript angularjs angularjs-directive angularjs-scope

现在我有一个输入字段:

<input type="number" ng-model="distance"></input>

在JS中,我将距离指定为值:

$scope.distance = 0;

我想在用户输入值并单击按钮时更改此值。我使用我的控制器设置了按钮...但是每次单击该按钮时,它都会将值显示为0。

单击按钮时的功能:

//convert button function for when button is clicked
$scope.convert = function(myUnit, myUnit2, distance){
    alert(distance);
}

按钮:

<button class="button button-block button-balanced" ng-click="convert(myUnit.thisunit, myUnit2.thisunit2, {{distance}})">
    Convert
</button>

2 个答案:

答案 0 :(得分:1)

更改ng - 单击此ng-click="convert(myUnit.thisunit, myUnit2.thisunit2, distance)",因为您在{{distance}}指令中使用了ng-click插值指令,该指令永远不会传递距离值

<强> HTML

<button class="button button-block button-balanced" ng-click="convert(myUnit.thisunit, myUnit2.thisunit2, distance)">
    Convert
</button>

希望这可以帮助你,谢谢。

答案 1 :(得分:0)

根据HTML的结构,(如果ngIf上方有<input>),距离模型可能不会流入您的控制器。

您可能应该将其嵌套以确保安全,例如:

$scope.formData = {distance: 0};

然后:

<input type="number" ng-model="formData.distance"></input>

此外,您的点击处理程序也应该只读取$scope值:

$scope.clickHandler = function() {
    alert(formData.distance);
}