2017-06-21 49 views

回答

9

只需按照下列步骤操作:从here

  1. 下载mdi.svg角材料部分,并将其放置在你的assets文件夹,应位于(从项目的根目录)/src/assets

    Documentation <code>assets</code> folder

  2. 在您的应用程序的模块(又名app.module.ts),加上下面几行:

    import {MatIconRegistry} from '@angular/material/icon'; 
    import {DomSanitizer} from '@angular/platform-browser'; 
    ... 
    export class AppModule { 
        constructor(private matIconRegistry: MatIconRegistry, private domSanitizer: DomSanitizer){ 
         matIconRegistry.addSvgIconSet(domSanitizer.bypassSecurityResourceUrl('/assets/mdi.svg')); 
        } 
    } 
    
  3. 确保包括在assets.angular-cli.jsonassets文件夹(虽然在默认情况下,它会在那里):

    { 
        "apps": [ 
         { 
           ... 
           "assets": [ 
            "assets" 
           ] 
         } 
        ] 
    } 
    

  4. 最后,随着svgIcon输入经由MatIcon部件使用它


更新

我已经改变了说明,以便将更高版本的工作。

+1

非常感谢你:d –

+0

感谢您在过去的一天,你的信息response.I一直缠斗一个非常奇怪的问题。我在本地环境中成功使用了。当我将相同的代码部署到我的测试服务器时,图标显示并且一切都很美 我收到以下错误消息。检索图标时出错:标记未找到 基本上标记不会在md-icon内部呈现。我可以确认所有SVG返回200并正确加载。没有其他问题。我将不胜感激任何帮助或暗示。我将我的SVG文件夹放在公用文件夹下 –

+0

@RiceJunkie您使用的是什么版本的angular-material2? – Edric

9

对于所有谁使用SCSS:

npm install material-design-icons 
在SRC

/styles.scss

@import '~material-design-icons/iconfont/material-icons.css'; 

和HTML如@ creep3007描述here

<i class="material-icons">visibility</i> 
3

答案相似,你可以在你的.angular-cli.json中指定样式表:

  1. 安装NPM包

    npm install material-design-icons --save 
    
  2. 材料图标添加到您的.angular-CLI。JSON

    { 
        "apps": [ 
        { 
         "styles": [ 
         "../node_modules/material-design-icons/iconfont/material-icons.css" 
         ] 
        } 
        ] 
    } 
    
  3. 使用它

    <i class="material-icons">visibility</i> 
    
+0

OP不使用Google Material Design图标。他使用Templarian的MaterialDesignIcons。 – Edric

+0

这是包含材质图标的最佳方式,将其包含到scss文件或angular-cli.json中? – thekingtn