Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用角度布线时如何升级Material Design Lite js组件?_Javascript_Angularjs_Material Design Lite - Fatal编程技术网

Javascript 使用角度布线时如何升级Material Design Lite js组件?

Javascript 使用角度布线时如何升级Material Design Lite js组件?,javascript,angularjs,material-design-lite,Javascript,Angularjs,Material Design Lite,我知道MDLJS组件(如文本字段、菜单和选项卡)默认情况下在文档加载时加载和升级,但在使用角度路由的模板上不会发生这种情况。此时,我正在使用它,但它只会在用户第二次访问视图时使我的组件正常工作: $scope.$on('$routeChangeStart', function() { $document.ready(function() { componentHandler.upgradeDom(); }); }); 在用户第一次进入视图之前,还是要升级模板上的组

我知道MDLJS组件(如文本字段、菜单和选项卡)默认情况下在文档加载时加载和升级,但在使用角度路由的模板上不会发生这种情况。此时,我正在使用它,但它只会在用户第二次访问视图时使我的组件正常工作:

$scope.$on('$routeChangeStart', function() { 

   $document.ready(function() {
      componentHandler.upgradeDom();
   });

});
在用户第一次进入视图之前,还是要升级模板上的组件?我被困在这个问题上。

这对我很有效

angular.module(...)
.run(function($rootScope, $location, $timeout) {
    $rootScope.$on('$viewContentLoaded', function() {
        $timeout(function() {
            componentHandler.upgradeAllRegistered();
        });
    });
})

我对MDL不是很熟悉,但你可能会发现它很有用。我来看看。非常感谢@SeanWalsh。我为我的案子找到了一个简单的解决方案,@SeanWalsh,谢谢你。我使用了setInterval(),而不是$document.ready,就像这样:
code
setInterval(function(){componentHandler.upgradeDom();},200)<代码>代码