type = range不适用于ng-model

时间:2015-08-07 09:32:21

标签: javascript angularjs cordova cordova-plugins

我正在使用离子框架并使用mp3播放器的cordova插件。 以下是进度条的代码:
<input type="range" ng-change="barChangePosition(this)" ng-model="position" name="seekbar" min="0" max="{{trackDuration}}">enter image description here

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,但遇到了同样的问题。我想我错过了什么。请帮忙!

1 个答案:

答案 0 :(得分:0)

问题已解决:我必须使用data.position。 请查看此链接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);
});