【问题标题】:How to integrate angular2-materialize in a project created with angular cli如何在使用 angular cli 创建的项目中集成 angular2-materialize
【发布时间】:2016-09-24 11:11:10
【问题描述】:

我想在我的项目中使用Materialize CSS 框架。 我使用ng new BLABLA 建立了一个项目Angular CLI

之后我按照this 指南中的步骤进行操作。

但是,如果我使用ng serve 启动项目,我会在浏览器中收到此错误:

TypeError: undefined is not an object (evaluating 'jQuery.easing.swing') 

我的 angular-cli.json

{
  "project": {
    "version": "1.0.0-beta.15",
    "name": "blabla"
  },
  "apps": [
    {
      "root": "src",
      "outDir": "dist",
      "assets": "assets",
      "index": "index.html",
      "main": "main.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.json",
      "prefix": "app",
      "mobile": false,
      "styles": [
        "styles.css"
      ],
      "scripts": [
        "../node_modules/jquery/dist/jquery.js",
        "../node_modules/materialize-css/dist/js/materialize.js"
      ],
      "environments": {
        "source": "environments/environment.ts",
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts"
      }
    }
  ],
  "addons": [],
  "packages": [],
  "e2e": {
    "protractor": {
      "config": "./protractor.conf.js"
    }
  },
  "test": {
    "karma": {
      "config": "./karma.conf.js"
    }
  },
  "defaults": {
    "styleExt": "css",
    "prefixInterfaces": false
  }
}

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';

import { MaterializeModule } from 'angular2-materialize';
import "materialize-css";
import { AppComponent } from './app.component';

@NgModule({
  declarations: [ AppComponent ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    MaterializeModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

【问题讨论】:

    标签: angularjs angular materialize


    【解决方案1】:

    你需要做的如下:

    将此行添加到您的全局 css 文件中: @import "../node_modules/materialize-css/dist/css/materialize.css";

    并删除此行 导入“materialize-css”; 来自 app.module.ts

    如果你在任何情况下运行它,还要确保你安装了正确的 jquery 版本: npm install jquery@^2.2.4 --save

    这样做对我有用。 [祝你好运]

    【讨论】:

      【解决方案2】:

      我还发现,如果您在 angular-cli.json 的 apps[0].scripts 和 apps[0].styles 属性中设置条目后运行 npm rebuild ,则一切正常,您不必添加@import 到styles.css。

      我在 Mike Lynch 的网站 http://mikelynchgames.com/software-development/setting-up-and-using-angular-2-cli/ 上找到了这些信息

      【讨论】:

        【解决方案3】:

        或者,如果您想使用原始的 sass 而不是 DIST 版本的 materialzie css,因为您可能想要覆盖颜色和其他变量,您可以使用它...

        像这样在你的主 styles.sass 文件中导入具体化 css。

        // override fonts path to prevent build errors (or use resolve-url loader)
        $roboto-font-path: "../node_modules/materialize-css/fonts/roboto/"
        
        // optionally override color variables eg: ...
        $primary-color: color("materialize-purple");
        
        @import "~materialize-css/sass/materialize"
        

        【讨论】:

        • Sass 版本的 materialize 真的很困惑如何以干净的方式安装它
        猜你喜欢
        • 1970-01-01
        • 2016-12-18
        • 1970-01-01
        • 1970-01-01
        • 2020-10-15
        • 1970-01-01
        • 2020-04-16
        • 2020-01-26
        • 1970-01-01
        相关资源
        最近更新 更多