小编pd1*_*980的帖子

ng-show 指令触发后更新 dom 的时间太长

该应用程序有一个控制器,它使用服务来创建视频播放器的实例。视频播放器每隔几秒就会触发事件来显示进度。当视频到达某个点时,我想在视频播放器顶部显示一个小部件。

该视图将小部件包装在 ng-show 指令中。

在触发事件并填充值后,dom 元素需要超过 60 秒的时间才能接收到删除 ng-hide 类的信号。

如果我尝试使用普通的 dom 方法(如 document.getElementById(eleId).innerHTML = newHTML)来实现这一点,更新是即时的。

我究竟做错了什么?以下是完整的代码序列:

控制器:

MyApp.controller('SectionController', ['$scope', 'PlayerService'], function($scope, PlayerService){
$scope.createPlayer = function() {
    PlayerService.createPlayer($scope, wrapperId);
}});
Run Code Online (Sandbox Code Playgroud)

服务:

MyApp.service('PlayerService', [], function(){

this.createPlayer=function(controllerScope, playerWrapper){

    PLAYER_SCRIPT.create(playerWrapper) {

        wrapper : playerWrapper,
        otherParam : value,
        onCreate : function(player) {

            player.subscribe(PLAY_TIME_CHANGE, function(duration){
                showWidget(controllerScope, duration);
            })

        }
    }

}

function showWidget(controllerScope, duration) {
    if(duration>CERTAIN_TIME) {
        $rootScope.widgetData = {some:data}
        $rootScope.showWidget = true;
    }

}});
Run Code Online (Sandbox Code Playgroud)

看法:

<div ng-show="showWidget">  <div class="wdgt">{{widgetData.stuff}}</div>  </div>
Run Code Online (Sandbox Code Playgroud)

directive delay angularjs ng-show

0
推荐指数
1
解决办法
3665
查看次数

标签 统计

angularjs ×1

delay ×1

directive ×1

ng-show ×1