我有一个由 ng-repeat 创建的播放/暂停按钮列表。您单击每个播放按钮以流式传输歌曲,然后该按钮变为暂停按钮(因此您可以暂停它)。我能够正确设置按钮和单击事件,但是遇到了当您单击一个播放按钮时,所有按钮都变为暂停按钮的问题。
我(想我)明白为什么会发生这种情况:因为 ng-show 变量(可见)正在更改,因此会影响所有这些变量。
我通读了其他类似的答案(ng-repeat ng-show dilemna),但我无法将这些课程(例如使用 $index)应用到我的示例中。此外,许多示例和小提琴使用您单击的 div,然后执行类似的操作show = !show
,然后依次显示“正在加载...”。
我觉得我的有点不一样。
这是我的html:
<div class="nav nav-stacked list-group-item" id="sidebar" ng-repeat="show in shows">
<div class="media col-md-3">
<img class="media-object img-rounded img-responsive" src="/images/play_button.png" alt="playbutton" height="40px" width="40px" ng-click="streamTrack(show.stream_url)" ng-show="visible">
<img class="media-object img-rounded img-responsive" src="/images/pause_button.png" alt="playbutton" height="40px" width="40px" padding-right="5px" ng-click="pauseTrack(sound)" ng-hide="visible">
</div>
</div>
这是我的控制器的相关部分:
$scope.visible = true;
$scope.streamTrack = function (stream_url) {
SC.stream(stream_url, function (sound) {
$scope.sound = sound;
sound.play();
});
$scope.visible = false;
};
$scope.pauseTrack = function (sound) {
sound.pause();
$scope.visible = true;
};
有什么方法可以处理这个?因此,当您单击一个播放按钮时,它会隐藏而不是播放按钮并仅显示该播放按钮的暂停按钮。我猜这可能与 $index 或 Parentindex 有关,但经过几个小时的闲逛和阅读,我仍然没有靠近。