Angular2 Material 映射问题

标签 angular angular-material systemjs

我正在使用 Angular2 beta 和 angular2-material alpha.3,它们是兼容的,但我在映射方面遇到问题。

在我的 public/index.html 中我有这个系统设置

System.config (
            {
                packages: {
                    app: {
                        format          : 'register',
                        defaultExtension: 'js'
                    }
                },
                map: {
                    '@angular2-material/input': 'node_modules/@angular2-material/input'
                }
            }
        );
        System.import ( 'app/boot' ).then ( null, console.error.bind ( console ) );

但是在我的一个组件中,当我尝试导入并将其添加到要在模板中使用的指令时,如下所示:

import { Component } from 'angular2/core';
import { ControlGroup, Validators, FormBuilder } from 'angular2/common';
import { Http, Headers } from 'angular2/http';
import { ConfigService } from '../../services';
import {MD_INPUT_DIRECTIVES} from '@angular2-material/input';


@Component({
    selector: 'test-form',
    providers: [],
    templateUrl: ConfigService.APP_FOLDER + '/components/test/test.html',
    directives: [MD_INPUT_DIRECTIVES]
}) 

我收到此错误:

angular2-polyfills.js:127 GET http://localhost:8080/node_modules/@angular2-material/input 404 (Not Found)scheduleTask @ angular2-polyfills.js:127ZoneDelegate.scheduleTask @ angular2-polyfills.js:362Zone.scheduleMacroTask @ angular2-polyfills.js:299(anonymous function) @ angular2-polyfills.js:148send @ VM1191:3fetchTextFromURL @ system.src.js:1154(anonymous function) @ system.src.js:1735ZoneAwarePromise @ angular2-polyfills.js:610(anonymous function) @ system.src.js:1734(anonymous function) @ system.src.js:2759(anonymous function) @ system.src.js:3333(anonymous function) @ system.src.js:3600(anonymous function) @ system.src.js:3985(anonymous function) @ system.src.js:4448(anonymous function) @ system.src.js:4700(anonymous function) @ system.src.js:406ZoneDelegate.invoke @ angular2-polyfills.js:349Zone.run @ angular2-polyfills.js:242(anonymous function) @ angular2-polyfills.js:597ZoneDelegate.invokeTask @ angular2-polyfills.js:382Zone.runTask @ angular2-polyfills.js:282drainMicroTaskQueue @ angular2-polyfills.js:500ZoneTask.invoke @ angular2-polyfills.js:452 angular2-polyfills.js:349 Error: Error: XHR error (404 Not Found) loading http://localhost:8080/node_modules/@angular2-material/input

最佳答案

<script>
        System.config (
            {
                map: {
                    '@angular2-material' : 'libs/@angular2-material',
                },
                packages: {
                    app: {
                        format          : 'register',
                        defaultExtension: 'js'
                    },
                    '@angular2-material/core' : {
                        main: 'core.js',
                        defaultExtension: 'js'
                    },
                    '@angular2-material/input' : {
                        main: 'input.js',
                        defaultExtension: 'js'
                    }
                }
            }
        );
        System.import ( 'app/boot' ).then ( null, console.error.bind ( console ) );
    </script>

已修复,因为您需要映射 @angular2-material,然后需要将 angular2-material 中的每个包定义到其 JS 文件。

关于Angular2 Material 映射问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38479350/

相关文章:

angular - ts1109 : expression expected angular error

javascript - 如何在 Angular 中使用 mat-card 的 Material 分页?

angular2 Material 2 Datepicker - 输出日期格式

javascript - 如何使用 Auth0 配置 SystemJS?

node.js - dotnet core 可移植 Angular 应用程序未运行

angular - 如何修复 Angular 应用程序中的此错误 "No provider for ControlContainerAngular"

javascript - Angular Uncaught( promise ): ChunkLoadError: Loading chunk XXXfailed

Angular:拖放树 - 自定义

javascript - 如何通过 SystemJs 在 Angular2 中使用时刻时区

javascript - SystemJS,将 importmap 与模块一起使用,需要使用react