2016-03-03 86 views
1

写那么具体到一个控制器/页角在角2,我们有styleUrls,在角1.X,我们有这样的事情:如何使用ES6

app.config(['$routeProvider', function($routeProvider){ 
    $routeProvider 
     .when('/some/route/1', { 
      templateUrl: 'partials/partial1.html', 
      controller: 'Partial1Ctrl', 
      css: 'css/partial1.css' 
     }) 
     .when('/some/route/2', { 
      templateUrl: 'partials/partial2.html', 
      controller: 'Partial2Ctrl' 
     }) 
     .when('/some/route/3', { 
      templateUrl: 'partials/partial3.html', 
      controller: 'Partial3Ctrl', 
      css: ['css/partial3_1.css','css/partial3_2.css'] 
     }) 
}]); 

但使用BabelJS &的WebPack,这是使用Angular1.X与ES6语法,我不知道如何编写LESS特定于一个页面/文件夹/控制器,只适用于一个模板,

我试过数据:{css:'一些css url'}和

export default function routes($stateProvider) { 
    'ngInject'; 
    $stateProvider 
    .state('content', { 
     url: '/content/:appId/:template/:device', 
     template: require('./content.html'), 
     controller: ContentController, 
     controllerAs: 'content', 
     css: './content.less' 
    }); 
} 

仍然没有工作。

请指教,如果您需要更多信息,请告诉我。

+0

我的理解是,少之前必须编译成实际的css才可用。所以指向输出CSS。 –

+0

@AmyBlankenship试过了,没有工作 –

回答

1

如果您打算使用less预处理器编写样式,则应先构建它们,然后在路由配置中使用输出文件名。

如果您使用的WebPack,它看起来像:

module.exports = { 
    entry: { 
    app: './src/app.js', //don't forget to build your js 
    partial1: './src/partials/partial1.less', 
    partial2: './src/partials/partial2.less', 
    // and so on ... 
    }, 
}; 

产生的文件将在您的输出目录。你应该指向它们的链接:

$routeProvider 
    .when('/some/route/1', { 
     templateUrl: 'partials/partial1.html', 
     controller: 'Partial1Ctrl', 
     css: 'partial1.css' 
    }) 
-1

我很好奇,你在哪里得到css财产的状态?它不会在API中存在

http://angular-ui.github.io/ui-router/site/#/api/ui.router.state。$ stateProvider

AngularJS 1.x中没有的CSS封装功能,可在Angular2。

+0

他们可能使用[Angular Route Styles](https://github.com/tennisgent/angular-route-styles)。我错过了他们没有使用ng-route。他们可能需要修改角度路由样式来侦听任何可用的事件。请注意,这不仅仅是一个答案,而是一个评论,所以我是下调的。如果你删除它,我想我们都会得到回复。 –

+0

在问题中,原始的海报正在使用'$ stateProvider'来创建路线。这是'uiRouter'的一部分,而不是'ngRouter'。 angular-route-styles与'ngRouter'集成,但不是'uiRouter'。所以我的答案仍然是真实和正确的。 – Martin

+0

我没有说它不适用或不正确。这只是一个答案 - 这是一个问题。所以它需要是一个评论,要求用户澄清他们的问题。 –