繁体   English   中英

如何在AngularJS中包含特定于视图的.less文件

[英]How to include view specific .less files in AngularJS

我在我的项目中使用角度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');

我意识到实现这一目标的唯一方法是使用Webpack或类似的构建。 这样您就可以在组件/指令中require('./state-1.less') 这个想法是webpack只包含所需的文件。 但实际上,如果您已经开始设置新的编译工具/任务运行器并不简单。

为您的应用程序提供所有css没有问题。 如果切换是您的任务,那么您可以使用ngclass根据每个州内发生的事件提供不同的样式块。

The_ehT是正确的,如果你想使用所需的插件,你需要提供编译的css。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM