0

我只是在测试 Angular Universal 如何处理第三方 JavaScript 和 CSS 库的导入。为了便于使用,我尝试使用 jQuery 和 Bootstrap。

我正在使用 Universal Starter repo https://github.com/angular/universal-starter并通过 npm 安装 jQuery 和 Bootstrap。

在我的中app.component.ts,我像这样包含了 jQuery,它运行良好。

import { isBrowser, isNode } from 'angular2-universal'
var jQuery: any = require('jquery');

...

@Component({
  changeDetection: ChangeDetectionStrategy.Default,
  encapsulation: ViewEncapsulation.Emulated,
  selector: 'app',
  templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {
  title = 'ftw';

  ngOnInit(): void {
    if (isBrowser) {
      jQuery('#universal').css({'color': '#FF0000', 'font-size': '25px'})
    }
  }
}

虽然当我想导入一个 css 文件时它不能正常工作。我将它导入到我的app/client.ts文件中,如下所示。

...
// Angular 2
import { enableProdMode } from '@angular/core';
import { platformUniversalDynamic } from 'angular2-universal/browser';
import { bootloader } from '@angularclass/bootloader';

import { load as loadWebFont } from 'webfontloader';

import 'bootstrap/dist/css/bootstrap.css';

// enable prod for faster renders
enableProdMode();
...

实际的 Bootstrap css 在我的 Webpack 包中,但我的 HTML 没有任何样式。有人遇到过类似的问题并且知道如何解决这个问题吗?

4

2 回答 2

0

为了import 'bootstrap/dist/css/bootstrap.css';正常工作,您需要style loader,它没有随 Universal-starter repo 一起安装。旁注:如果您按原样使用 bootstrap.css,并且想要使用 Universal-starter,您可以将 bootstrap.min.css 复制到 assets 文件夹并在 index.html 中为其添加链接标签。

于 2017-01-05T10:26:06.810 回答
-1

转到 Angular CLI 项目文件夹根目录下的 angular-cli.json 或 angular.json 文件,找到 scripts: [] 属性,并包含 jQuery 的路径,如下所示:

"scripts": [ "../node_modules/jquery/dist/jquery.min.js",
"../node_modules/bootstrap/dist/js/bootstrap.js"]

现在,要使用 jQuery,您所要做的就是将它导入到您想要使用 jQuery 的任何组件中。

import * as $ from 'jquery';
(or)
declare var $: any;

import { Component, OnInit  } from '@angular/core';
import * as $ from 'jquery';
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {

  ngOnInit()
  {
    $(document).ready(function(){
       // your code
    });
  }
}
于 2019-11-28T10:28:30.037 回答