使用角度$ scope和ng-model进行数字调整

时间:2017-03-06 17:07:02

标签: javascript angularjs ionic-framework

我正在制作一个节拍器并且最初设置了一个值为100的div:

<div ng-bind="currentBpm"></div>

在我的控制器中,我最初设置了范围:

$scope.currentBpm = 100;

然后我还有一个调整速度的功能:

function adjustBpm(direction) {
    if (direction == false && $scope.currentBpm > 1) {
        $scope.currentBpm = $scope.currentBpm -1;
    } else if (direction == true && $scope.currentBpm < 999) {
        $scope.currentBpm = $scope.currentBpm +1;
    }

    console.log($scope.currentBpm);
}

这很好用,但我需要让用户选择使用数字键盘输入值。

将div切换为数字输入:

<input type="number" ng-model="currentBpm">

允许用户单击输入并调整值,但不使用$ scope。用于调整值的功能仍然是控制台记录先前的值而不是输入的值。我猜测ng-model远离范围并创建了两个不同的值。

有没有办法同步这些?

单击+ / - 按钮调用adjustBpm函数。

<div ng-click="adjustBpm(false)"> + </div>

1 个答案:

答案 0 :(得分:0)

您必须在输入上调用ng-click和ng-keyup:

     var ft = new FileTransfer();
     ft.upload(imageData, "https://somewhere.com/cgi/mPictureUpload.exe", function(result){
         // success
     }, function(error){
         // fail
     }, options);

或者如@georgeawg所说,你可以使用ng-change:

<input type="number" ng-model="currentBpm" ng-click="adjustBpm(false)" ng-keyup="adjustBpm(false)">