0

我在每个选项卡中使用ng-repeatuib-tabset是计时器。每个计时器都有一个开始按钮,因此每个计时器都可以在某些操作上启动。

<uib-tabset active="activeTab">
<uib-tab ng-repeat="question in vm.QuestionsList" index="question.Index" disable="question.disabled">
    <uib-tab-heading>
        Q{{question.Index}}
    </uib-tab-heading>

    <timer countdown="question.TimeForQuestionInSeconds" interval="1000" finish-callback="vm.questionTimeOut()" autostart="false" id="q{{question.Index}}-timer">
        Remaining time : {{countdown}} second{{secondsS}} <br />
        <div class="progress progress-striped active {{displayProgressActive}}" style="height: 15px;"><div class="bar" style="width: {{progressBar}}%;"></div> </div>
    </timer>

    <button type="button" class="btn btn-default btn-sm" ng-click="vm.startTimer()" ng-disabled="vm.TimerRunning">Start</button>
</uib-tab>
</uib-tabset>

在我的控制器中,我有这个功能:

public startTimer() {
            this.$scope.$broadcast('timer-start');
            this.TimerRunning = true;
        }

但它启动了我所有的计时器。我在这里找到了这个解决方案https://github.com/siddii/angular-timer/issues/166

document.getElementById('q1-timer').start();

但我得到这个错误Uncaught TypeError: document.getElementById(...).start is not a function,不知道为什么。还有其他方法吗?

4

0 回答 0