Я иду через книгу учебник, чтобы узнать машинописи и 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]\node_modules\moment
Тогда в [my project folder]\main.html
, у меня есть <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 locale '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]
.
У кого-нибудь есть идеи, как получить все locale
из lib moment.js только с одним заявлением import * as moment from 'moment';
?
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>..
`
})