2016-10-10 4 views
1

ではありません。(Become_a_Ninja_with_Angular2を)。Angular2 +活字体+ moment.js =>ロケール私は<strong>活字体</strong>と<strong>AngularJS 2.0</strong>学習するブックのチュートリアルを通してつもりです(単に 'en' と)すべてそこ

ある点では、独自のパイプを作成する方法を説明し、moment.jsの実装を行っています。 npm install moment (FYI:本はまたtypings install --save --ambient moment-nodeを行うに伝えますが、それは私が--global--ambientを変更してもエラーがスローされ、また、このエラーはならない、たまたま私のプロジェクトは、私はCLIで行う置かれているフォルダに

私が以下で説明するコードの残りの部分としてmoment.jsを使用する問題)。

次に、前回のCLIの結果として、それは私のプロジェクトフォルダの下に作成されます: `

<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> 

マイカスタムパイプは次のようになります。[my project folder]\main.htmlで次に[my project folder]\node_modules\moment

、私はと<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/frwhat I found by looking at already existing solution on StackOverflow)を追加する必要がありました。このタグが実装されていない場合、私は'en'にしかアクセスできませんでした。つまり、他の言語を追加するにはimport 'moment/../locale/[the locale I want available]を追加する必要があります。

誰もがimport * as moment from 'moment';という単一の文でlib moment.jsからすべてのlocaleを得る方法はありますか?

PS:私は、[マイプロジェクトフォルダ] \ app.module.tsに追加:私は回避策を見つけ

[@Component({ 
    selector: 'ns-mycomponent', 
    template:` 
..    <div>{{ '2016/05/01'|fromNow }}</div>.. 

       ` 
}) 

答えて

1

import { FromNowPipe } from './custom_pipes/fromnow.pipe'; 
... 
    @NgModule({ 
     ... 
     declarations: [...,FromNowPipe], 
     ... 
    }) 
... 

そしてどこかに私が持っている私のコンポーネントの一つで

System.config({ 
      defaultJSExtensions: true, 
      map: { 
       ... 
      } 
}); 
::私は [my project folder]\main.htmlで、質問に書いたものに基づいて

ファイルの先頭にimport * as moment from 'moment';、それが動作します::私はちょうど私のままパイプファイルで'moment':'node_modules/moment/min/moment-with-locales.min.js'

'moment':'node_modules/moment/moment'を:

は私が置換されたすべての言語がご利用いただけます。

関連する問題