将外部CSS和JS链接添加到Angular 2中的组件

时间:2017-05-02 18:17:13

标签: javascript css angular

为了使用" Bootstrap Select"在my.component.ts中,我尝试使用它:

@Component({
  templateUrl: 'my.component.html',
  styleUrls: [
        'my.component.css',
         //Bootstrap Select
        'https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/css/bootstrap-select.min.css'
  ]
})

我收到了这个错误:

  

无法解决' ./ https://cdnjs.cloudflare.com/ ......'在&C; ..... \ app \ components'

似乎angular 2在我的文件夹中搜索bootstrap。那么我可以告诉他这是一个外部URL吗?

我还需要添加我的js链接:

<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/js/bootstrap-select.min.js"></script>

2 个答案:

答案 0 :(得分:0)

来自angular styles documentation

  

元数据中的样式网址

     

您可以通过添加styleUrls从外部CSS文件加载样式   属性为组件的@Component装饰器:

 @Component({
      selector: 'hero-details',
      template: `
        <h2>{{hero.name}}</h2>
        <hero-team [hero]=hero></hero-team>
        <ng-content></ng-content>
      `,
      styleUrls: ['app/hero-details.component.css']
    })
    export class HeroDetailsComponent {
    /* . . . */
    }
  

URL相对于应用程序根目录,通常是托管应用程序的index.html网页的位置。该   样式文件URL与组件文件无关。这就是为什么   示例URL开始src / app /。指定相对于的URL   组件文件,请参阅附录2.

     

您还可以将代码嵌入到组件的HTML模板中。

     

与styleUrls一样,链接标记的href URL是相对于   应用程序根目录,而不是组件文件。

@Component({
      selector: 'hero-team',
      template: `
        <link rel="stylesheet" href="app/hero-team.component.css">
        <h3>Team</h3>
        <ul>
          <li *ngFor="let member of hero.team">
            {{member}}
          </li>
        </ul>`
    })
  

CSS @imports

     

您还可以使用标准将CSS文件导入CSS文件   CSS @import规则。有关详细信息,请参阅MDN站点上的@import。

     

在这种情况下,URL相对于您所在的CSS文件   的进口。

@import 'hero-details-box.css';

现在。出于某种目的,您可能需要更改封装。这是这里的主题。 Load external css style into Angular 2 Component看一看。它解决了您添加外部CDN的问题,但我想提供完整信息以及为什么需要它。为了确保您能够解决您的问题。

此外,其他建议可以解决您添加脚本标记的问题。我建议只将它添加到您的组件模板中,因为您应该直接在html中完成您组件的特定内容。

答案 1 :(得分:0)

你必须给它一个文件的相对路径。

从&#34; ./开始,这里是你的css文件/my.component.css"

的路径

对于被调用的第二个css文件。那个进入你的index.html文件就像这样:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/css/bootstrap-select.min.css">