从http://ng2-uploader.com使用Angular2文件上传器时出错

hem*_*123 2 angular

我是Angular 2的新手.我正在尝试上传文件.为此,我正在使用http://ng2-uploader.com.我已经阅读了他们的文档和README文件并执行了所有说明,但我在浏览器中收到此错误:

 GET http://localhost:3000/ng2-uploader 404 (Not Found)
(SystemJS) XHR error (404 Not Found) loading http://localhost:3000/ng2-uploader(…)
Run Code Online (Sandbox Code Playgroud)

在彻底搜索之后,我发现我们需要在systemjs.config.js中添加包

所以我的旧文件是:

map: {
  // our app is within the app folder
  app: 'app',
  // angular bundles
  '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
  '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
  '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
  '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
  '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
  '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
  '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
  '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
  // other libraries
  'rxjs':                      'npm:rxjs',
  'angular-in-memory-web-api': 'npm:angular-in-memory-web-api',
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
  app: {
    main: './main.js',
    defaultExtension: 'js'
  },
  rxjs: {
    defaultExtension: 'js'
  },
  'angular-in-memory-web-api': {
    main: './index.js',
    defaultExtension: 'js'
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我的更新文件是:

map: {
  // our app is within the app folder
  app: 'app',
  // angular bundles
  '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
  '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
  '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
  '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
  '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
  '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
  '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
  '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
  'ng2-uploader':'npm:ng2-uploader/ng2-uploader.js',
  // other libraries
  'rxjs':                      'npm:rxjs',
  'angular-in-memory-web-api': 'npm:angular-in-memory-web-api',
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
  app: {
    main: './main.js',
    defaultExtension: 'js'
  },
  rxjs: {
    defaultExtension: 'js'
  },
  'angular-in-memory-web-api': {
    main: './index.js',
    defaultExtension: 'js'
  },
  'ng2-uploader':{
    defaultExtension: 'js'
  }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我在文件中添加了ng2-uploader,但现在我在浏览器中收到此错误:

GET http://localhost:3000/node_modules/ng2-uploader/src/directives/ng-file-select 404 (Not Found)
(index):16 Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:3000/node_modules/ng2-uploader/src/directives/ng-file-select(…)
GET http://localhost:3000/node_modules/ng2-uploader/src/directives/ng-file-drop 404 
GET http://localhost:3000/node_modules/ng2-uploader/src/services/ng2-uploader 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

这是我的app.module.ts:

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent }   from './app.component';
import {UPLOAD_DIRECTIVES} from 'ng2-uploader';

@NgModule({
  imports:      [ BrowserModule ],
  declarations: [ AppComponent,
          UPLOAD_DIRECTIVES ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

我知道我还在遗漏一些东西.你能帮我么.谢谢

yur*_*zui 5

你可以尝试这个配置:

map: {
  ...
  'ng2-uploader':'npm:ng2-uploader'
},
packages: {
  ...
  'ng2-uploader':{
     main: 'ng2-uploader.js',
     defaultExtension: 'js'
  }
}
Run Code Online (Sandbox Code Playgroud)

似乎它对我有用