我會通一本書教程學習打字稿和AngularJS 2.0:(Become_a_Ninja_with_Angular2)。Angular2 +打字稿+ moment.js =>語言環境是不是所有有(只是 '恩')
在某些時候,它解釋瞭如何製作自己的管道,並通過執行moment.js。
在我的項目所在的文件夾我做CLI:npm install moment
(FYI:這本書還告訴做typings install --save --ambient moment-node
,而是拋出一個錯誤,即使我改變--ambient
通過--global
,也是這個錯誤發生在不作爲我在下面描述的代碼的其餘部分使用moment.js
問題運行)。
然後,先前的CLI的結果,它創建在我的項目文件夾:在[my project folder]\main.html
[my project folder]\node_modules\moment
然後,我有一個<script>
標籤有:`
<script>
System.config({
defaultJSExtensions: true,
map: {
... [plenty of stuff starting with @angular]..
'@angular/platform-browser-dynamic':'node_modules/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'rxjs': 'node_modules/rxjs',
'moment':'node_modules/moment/moment'
}
});
System.import('main');
</script>
我自管看起來是這樣的:
import { PipeTransform, Pipe } from '@angular/core';
import * as moment from 'moment';
import 'moment/../locale/fr';
@Pipe({name: 'fromNow'})
export class FromNowPipe implements PipeTransform {
transform(value,args){
let mydate = moment(new Date(value));
console.log(moment.locales());
return mydate.fromNow();
}
}
正如你可以在我的自管代碼中看到,訪問日e區域'fr'
,我不得不添加import 'moment/../locale/fr
(what I found by looking at already existing solution on StackOverflow)。如果這個標籤沒有實現,我只能訪問'en'
。這意味着添加其他語言將需要添加import 'moment/../locale/[the locale I want available]
。
任何人有任何想法如何使用只有單import * as moment from 'moment';
聲明的所有locale
從自由度moment.js?
PS:我添加到[我的項目文件夾] \ app.module.ts:
import { FromNowPipe } from './custom_pipes/fromnow.pipe';
...
@NgModule({
...
declarations: [...,FromNowPipe],
...
})
...
而且在某處我的組件之一,我有:
[@Component({
selector: 'ns-mycomponent',
template:`
.. <div>{{ '2016/05/01'|fromNow }}</div>..
`
})