我在项目中使用了角度UI_Router。我想为特定状态加载特定的.less文件。我尝试使用angular-UI-router-styles,但它没有用。可能是使用less而不是css。
请检查我的代码。我正在使用angular-ui-router-styles将css添加到路由中。它正在工作,但页面的样式没有反映。
index.js
require('jquery/dist/jquery.js');
require('bootstrap/dist/css/bootstrap.css');
require('./content/common.css');
require('angular');
require('angular-ui-router/release/angular-ui-router.js');
require('angular-route/angular-route.js');
require('angular-cookies/angular-cookies.js');
require('materialize-css/dist/css/materialize.css');
require('angular-ui-router-styles/ui-router-styles.js');
angular.module('adminsuite',['ui.router','ngCookies','uiRouterStyles']).config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('login', {
url: '/',
views:{
content:{
templateUrl: 'Login/login.html',
controller: 'loginController',
data:{
css:"styles/login/login.less"
}
},
footer:{
templateUrl: 'common/footer.html',
controller: 'footerController'
}
}
})
// HOME STATES AND NESTED VIEWS ========================================
.state('dashboard', {
url: '/dashboard',
views:{
header:{
templateUrl: 'common/header.html',
controller: 'headerController'
},
content:{
templateUrl: 'dashboard/dashboard.html',
controller: 'dashboardController',
data:{
css:"styles/dashboard/dashboard.less"
}
},
footer:{
templateUrl: 'common/footer.html',
controller: 'footerController'
}
}
});
// ABOUT PAGE AND MULTIPLE NAMED VIEWS =================================
});
require('./Login/loginController.js');
require('./dashboard/dashboardController.js');
require('./common/headerController.js');
require('./common/footerController.js');
require('./services/loginAuthenticationService.js');
require('./services/UserServices.js');
答案 0 :(得分:0)
我意识到实现这一目标的唯一方法是使用Webpack
或类似版本。这样您就可以在组件/指令中require('./state-1.less')
。这个想法是webpack只包含所需的文件。但实际上,如果您已经开始设置新的编译工具/任务运行器并不简单。
为您的应用程序提供所有css没有问题。如果切换是您的任务,那么您可以使用ngclass
根据每个州内发生的事件提供不同的样式块。
The_ehT
是正确的,如果您想使用所需的插件,则需要提供已编译的css。