angular 强制更新视图_如何使 angular DOM强制更新

这篇博客探讨了一个音乐播放器应用在AngularJS中遇到的问题:当音乐源(src)相同,即使对象不同,视图不会更新。作者详细描述了播放下一曲时的逻辑,并提出疑问:在AngularJS中,如何在src不变的情况下强制DOM更新。博客内容涉及到事件广播、音乐播放控制以及可能的解决方案探索。
摘要由CSDN通过智能技术生成

简介

目前有一个音乐播放器,具体html如下

button class="btn btn-default" ng-click="musicNext()">

musicElem.next=function(){

this.clearProgressbar()

this.now_music=this.music_list[this.music_list.indexOf(this.now_music)+1];

console.log("now list",this.music_list)

this.play();

$rootScope.$broadcast("state_play",true)

$rootScope.$broadcast("now_music",this.now_music)

console.log("now music",this.now_music)

}

musicElem.play=function(){

console.log(this.music_audio.paused)

if(this.music_audio.paused){

this.music_audio.play();

this.progressbar();

$rootScope.$broadcast("state_play",true)

}else{

this.music_audio.pause()

$rootScope.$broadcast("state_play",false)

$(this.music_progress).stop(true)

}

}

this.music_audio就是audio元素

this.now_music是从this.music_list取出一条数据代表当前播放的音乐为一个对象,格式如下 {src:"http://baidu.com/1.mp3",name:"xxxname"}

playClass为按钮状态 true按钮为播放的样式 false按钮为暂停样式

this.music_progress为进度条 这个可以先无视掉

大致思路

当点击下一曲的时候会从list中获取下一个音乐,然后更新now_music,视图根据now_music.src来更新DOM,同时设置当前的音乐为暂停状态.利用的是src变化会自动重置,

现在问题来了

如果有两个相同的src,比如[{src:"123.mp3"},{src:123.mp3}]那么视图是不会更新src的 于是当点击下一曲的时候获取到的还是当前音乐状态.

于是想问问在angularJS中就算src是一样的如何使DOM强制刷新?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值