我是Angular2 World(和JS / TS)的新手。到目前为止,我确实在网上找到了我的问题的所有答案(主要是在stackoverflow上)。但我没有得到有意义的工作时刻。
我确实按照The angular2-Moment GitHub-Page上的说明操作,但是在我的应用加载时出现以下错误:
angular2-polyfills.js:127 GET http://localhost:8080/angular2-moment 404 (Not Found)
http://localhost:8080/angular2-moment(…)
Webstrom的导入是:
import {DateFormatPipe} from "angular2-moment/index";
我试图将其更改为:
import {DateFormatPipe} from "angular2-moment";
,import {DateFormatPipe} from "angular2-moment/DateFormatPipe";
或import {DateFormatPipe} from "angular2-moment/DateFormatPipe.js";
,但这没有帮助。
如果我将导入更改为import {DateFormatPipe} from "node_modules/angular2-moment/DateFormatPipe.js";
,则会出现以下错误:
GET http://localhost:8080/moment 404 (Not Found)
http://localhost:8080/moment(…)
我不知道我做错了什么,可以在这里使用一些帮助。非常感谢你的帮助!
我使用angular2-rc并希望像这样使用它:
@Component({
selector: ...,
template: ...,
pipes: [DateFormatPipe]
})
编辑:感谢@Sasxa我能够解决我的问题。但我仍然需要弄清楚一点,所以我会发布我的确切解决方案。我将system.config.js
更改为:
....
var map = {
'app': 'build/app', // 'dist',
'@angular': 'node_modules/@angular',
'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
'rxjs': 'node_modules/rxjs',
'moment': 'node_modules/moment/moment.js', //<--this
'angular2-moment': 'node_modules/angular2-moment' //<--this
};
// packages tells the System loader how to load when no filename and/or no extension
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'rxjs': { defaultExtension: 'js' },
'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
'angular2-moment': { defaultExtension: 'js' }//<--this
};
...
顺便说一下:import {DateFormatPipe} from "angular2-moment/index";
的正确导入确实有效。
答案 0 :(得分:1)
您需要配置模块加载器(我假设它是SystemJS)来识别时刻库。请具体查看their plunker example,config.js
。您需要添加类似于:
System.config({
map: {
'moment': 'path/to/moment/library'
'angular2-moment': 'path/to/angular2-moment/library'
}
});
如果默认配置不起作用,也可以设置System.config.package