2016-08-12 31 views

回答

0

所以有條件地加載CSS的方式我想出來的並不是很優雅,但工程。

我使用的是Angular UI路由器,當涉及到解決路由問題時,我使用angular.element()附加/刪除link標籤和CSS表單。在我的情況下,它是後端和前端的抽象路由,因此它在瀏覽子路由時僅解析(並追加/移除)鏈接標記一次。

// Frontend - add Bootstrap 

$stateProvider 
.state('front', { 
    url: "", 
    abstract: true, 
    templateUrl, 
    resolve: { 
     importBootstrapCss() { 
      let head = angular.element(document.querySelector('head')); 
      head.append("<link rel='stylesheet' type='text/css' href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css' id='bootstrap-css'>"); 
     } 
    } 
}); 

// Backend - remove Bootstrap 

$stateProvider 
.state('backend', { 
    url: "/backend", 
    abstract: true, 
    templateUrl, 
    resolve: { 
     deleteBootstrapCss() { 
      let link = angular.element(document.getElementById('bootstrap-css')); 
      link.remove(); 
     } 
    } 
}); 
相關問題