type=range 不适用于 ng-model
type=range is not working with ng-model
我在 ionic 框架中工作,并为 mp3 播放器使用 cordova 插件。
这是进度条的代码:
<input type="range" ng-change="barChangePosition(this)" ng-model="position" name="seekbar" min="0" max="{{trackDuration}}">
。
在controller.js
timer = $interval(function() {
$scope.trackDuration = $scope.audio.getDuration();
$scope.audio.getCurrentPosition(
function(position) {
if (position > -1) {
$scope.tempPosition = position;
$scope.position = position;
}
},
function(e) {
$scope.error = e;
});
}, 1000);
我想随时间改变进度条的位置。这是第一次完美地演奏和改变位置。 {{tempPosition}}
和 {{position}}
都工作正常。但是,如果我单击该进度条以更改其位置,则 {{tempPosition}}
可以正常工作,但 {{position}}
以及进度条会停止随时间变化(不起作用)。
{{position}}<br/>
{{tempPosition}}<br/>
我能为此做什么。我也尝试过 $watch
但遇到了同样的问题。我想我错过了什么。请帮忙!
问题已解决:我必须使用 data.position
。
请检查这个 link http://forum.ionicframework.com/t/working-with-ng-model-and-input-type-range/949
完整代码如下:
<input type="range" ng-model="data.position" name="seekbar" min="0" max="{{trackDuration}}">
Controller.js
.controller('MainController', function($scope, $interval) {
$scope.controllerName = "MainController";
$scope.data = {};
$scope.data.pos = 0;
timer = $interval(function() {
$scope.trackDuration = 50;
$scope.data.pos ++;
}, 1000);
});
我在 ionic 框架中工作,并为 mp3 播放器使用 cordova 插件。
这是进度条的代码:
<input type="range" ng-change="barChangePosition(this)" ng-model="position" name="seekbar" min="0" max="{{trackDuration}}">
。
在controller.js
timer = $interval(function() {
$scope.trackDuration = $scope.audio.getDuration();
$scope.audio.getCurrentPosition(
function(position) {
if (position > -1) {
$scope.tempPosition = position;
$scope.position = position;
}
},
function(e) {
$scope.error = e;
});
}, 1000);
我想随时间改变进度条的位置。这是第一次完美地演奏和改变位置。 {{tempPosition}}
和 {{position}}
都工作正常。但是,如果我单击该进度条以更改其位置,则 {{tempPosition}}
可以正常工作,但 {{position}}
以及进度条会停止随时间变化(不起作用)。
{{position}}<br/>
{{tempPosition}}<br/>
我能为此做什么。我也尝试过 $watch
但遇到了同样的问题。我想我错过了什么。请帮忙!
问题已解决:我必须使用 data.position
。
请检查这个 link http://forum.ionicframework.com/t/working-with-ng-model-and-input-type-range/949
完整代码如下:
<input type="range" ng-model="data.position" name="seekbar" min="0" max="{{trackDuration}}">
Controller.js
.controller('MainController', function($scope, $interval) {
$scope.controllerName = "MainController";
$scope.data = {};
$scope.data.pos = 0;
timer = $interval(function() {
$scope.trackDuration = 50;
$scope.data.pos ++;
}, 1000);
});