2

ブートストラップで次のエラーが発生しました。

TypeError: undefined(…) のプロパティ 'toString' を読み取れません。

私はAngular2 RC1を使用してng2-translate 2.1います。

また、以前のバージョン: Angular2 Beta-17およびng2-translate 1.11.

こちらがboot.ts

import {provide} from '@angular/core';
import {bootstrap} from '@angular/platform-browser-dynamic'
import {HTTP_PROVIDERS, Http} from '@angular/http';
import {TranslateLoader, TranslateStaticLoader, TranslateService} from 'ng2-translate/ng2-translate';

import {AppComponent} from './app.component'

bootstrap(AppComponent, [
    HTTP_PROVIDERS,
    provide(TranslateLoader, {
        useFactory: (http: Http) => new TranslateStaticLoader(http, 'i18n', '.json'),
        deps: [Http]
    }), TranslateService]);

こちらがsystemjs.config.js

  var  map = {
    ....
    'ng2-translate': 'docs/default/libs/ng2-translate'
  };
  var packages = {
    ...
    'ng2-translate': { defaultExtension: 'js' }
  };

boot.jsのセッターにブレークポイントがある場合ng2_translate:

function (ng2_translate_1_1) {
    ng2_translate_1 = ng2_translate_1_1;
},

ng2_translate_1_1「ほぼ」空です:

JSON.stringify(ng2_translate_1_1)
=> "{"default":{}}"
4

1 に答える 1

1

考えられる解決策:

私はangular-cliを使用してRC1にいますが、同じ問題があり、なんとか翻訳作業を行うことができました。これらは、問題を特定するのに役立つコード部分です。

システム構成: (パッケージ構成で通知、このオプションがないと TranslateService は未定義でした)format: 'cjs'

System.config({
    map: {
        /* ... */
        'ng2-translate': 'vendor/ng2-translate',
        /* ... */
    },
    packages: {
        /* ... */
        'ng2-translate': {
            format: 'cjs',
            defaultExtension: 'js',
            main: 'ng2-translate'
        },
        /* ... */
    }
})

ベンダーフォルダーに私はそのままコピーし'ng2-translate/**/*.js''ng2-translate/ng2-translate.js'おり、'ng2-translate/src/*.js'コピーされています

于 2016-06-07T00:18:50.813 に答える