我正在制作一个节拍器并且最初设置了一个值为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>
答案 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)">