Не удается разрешить все параметры для TranslateService: (?,?,?,?,?, [Object Object] - PullRequest
0 голосов
/ 18 мая 2018

Со вчерашнего дня я больше не могу тестировать свое приложение ionic 3 в браузере, потому что я получаю следующую ошибку, связанную с TranslateService .Кажется, это не относится к моему коду, поскольку я также сталкиваюсь с той же проблемой, когда переключаюсь на свои предыдущие версии, хотя в тот момент это работало нормально.Я попытался переустановить модули узла с, но все же не повезло.Знаете ли вы, что я должен сделать, чтобы решить эту проблему?Спасибо!

ОШИБКА Ошибка: Uncaught (в обещании): Ошибка: Не удается разрешить все параметры для TranslateService: (?,?,?,?,?, [Объект объекта], [объект объекта]).Ошибка: не удается разрешить все параметры для TranslateService: (?,?,?,?,?, [Объект Object], [объект Object]).с синтаксической ошибкой (compiler.js: 466) в CompileMetadataResolver._getDependenciesMetadata (compiler.js: 15544) в CompileMetadataResolver._getTypeMetadata (compiler.js: 15379) в CompileMetadata: 15719) в compiler.js: 15630 в Array.forEach () в CompileMetadataResolver._getProvidersMetadata (compiler.js: 15590) в compiler.js: 15080 в Array.forEach () в синтаксической ошибке (compiler.js: 466) в CompileMolta._getDependenciesMetadata (compiler.js: 15544) в CompileMetadataResolver._getTypeMetadata (compiler.js: 15379) в CompileMetadataResolver._getInjectableMetadata (compiler.js: 15359), в массиве:forEach () в CompileMetadataResolver._getProvidersMetadata (compiler.js: 15590) в compiler.js: 15080 в Array.forEach () в c (polyfills.js: 3) в c (polyfills.js: 3) в polyfills.js: 3при t.invokeTask (полифилls.js: 3) в Object.onInvokeTask (core.js: 4617) в t.invokeTask (polyfills.js: 3) в r.runTask (polyfills.js: 3) в o (polyfills.js: 3)

Из моего package.json я вижу: @ ngx-translate / core ":" ^ 9.1.1 "и @ ngx-translate / http-loader": "^ 2.0.1 "

Моя ионная информация

@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0

глобальные пакеты:

cordova (Cordova CLI) : 8.0.0 

локальные пакеты:

@ionic/app-scripts : 3.1.0
Cordova Platforms  : android 7.1.0 browser 5.0.3 ios 4.4.0
Ionic Framework    : ionic-angular 3.9.2

Система:

Android SDK Tools : 25.2.5
ios-deploy        : 1.9.2 
Node              : v6.10.0
npm               : 3.10.10 
OS                : macOS High Sierra
Xcode             : Xcode 9.3.1 Build version 9E501 

Переменные среды:

ANDROID_HOME : /usr/local/Cellar/android-sdk/24.1.2/

Разное:

backend : pro

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

+ 1 к вопросу.Извините за публикацию в качестве ответа - набрал недостаточно очков, чтобы комментировать)

"@ngx-translate/core": "9.1.1",
"@ngx-translate/http-loader": "2.0.1",

Вчера все работало идеально, и с тех пор ничего не изменилось или не обновилось.Я использую angular-cli в режиме dev, и что интересно, такой ошибки нет, если вы используете --prod для производства.Надеюсь, это поможет каким-то образом понять это!

0 голосов
/ 18 мая 2018

Сегодня мы столкнулись с той же проблемой на одной из наших рабочих станций, которая использует ту же папку node_module с другими!Эта ошибка, по-видимому, связана с последней обновленной версией Chrome, сгенерированными исходными картами ts или с обоими, потому что, когда мы запускали наши приложения в режиме разработки, чтобы другие браузеры работали нормально ... Быстрое решение состоит в том, чтобы сделать производственную сборку изагрузите его в Chrome, затем повторите попытку в режиме разработки.По крайней мере, это сработало для нас и, возможно, будет работать для других.

0 голосов
/ 18 мая 2018

У меня также есть та же версия @ ngx-translate / core ":" ^ 9.1.1 "и @ ngx-translate / http-loader": "^ 2.0.1"
YouМожно проверить угловую зависимость и версию сценария ionic-app с помощью моего package.json.Это работает для меня с этими версиями.

    "dependencies": {
    "@angular/animations": "5.2.9",
    "@angular/common": "5.2.9",
    "@angular/compiler": "5.2.9",
    "@angular/compiler-cli": "5.2.9",
    "@angular/core": "^5.2.9",
    "@angular/forms": "5.2.9",
    "@angular/http": "5.2.0",
    "@angular/platform-browser": "^5.2.9",
    "@angular/platform-browser-dynamic": "5.2.9",
    "@ionic-native/app-version": "^4.7.0",
    "@ionic-native/ble": "^4.7.0",
    "@ionic-native/core": "4.6.0",
    "@ionic-native/globalization": "^4.7.0",
    "@ionic-native/keyboard": "^4.7.0",
    "@ionic-native/network": "^4.7.0",
    "@ionic-native/screen-orientation": "^4.7.0",
    "@ionic-native/splash-screen": "4.6.0",
    "@ionic-native/status-bar": "4.6.0",
    "@ionic/storage": "2.1.3",
    "@ngx-translate/core": "^9.1.1",
    "@ngx-translate/http-loader": "^2.0.1",
    "cordova-android": "6.3.0",
    "cordova-ios": "4.5.4",
    "cordova-plugin-app-version": "^0.1.9",
    "cordova-plugin-compat": "^1.2.0",
    "cordova-plugin-device": "^2.0.1",
    "cordova-plugin-globalization": "^1.0.9",
    "cordova-plugin-ionic-keyboard": "^2.0.5",
    "cordova-plugin-ionic-webview": "^1.1.19",
    "cordova-plugin-screen-orientation": "^3.0.1",
    "cordova-plugin-splashscreen": "^5.0.2",
    "cordova-plugin-statusbar": "^2.4.1",
    "cordova-plugin-whitelist": "^1.3.3",
    "es6-promise-plugin": "^4.2.2",
    "ionic-angular": "3.9.2",
    "ionicons": "3.0.0",
    "moment": "^2.22.1",
    "moment-timezone": "^0.5.16",
    "rxjs": "5.5.8",
    "sw-toolbox": "3.6.0",
    "zone.js": "0.8.20"
  },
  "devDependencies": {
    "@ionic/app-scripts": "3.1.8",
    "typescript": "~2.6.2",
  }


Модуль приложения: app.module.ts

import {ErrorHandler, NgModule} from '@angular/core';
import {IonicApp, IonicErrorHandler, IonicModule} from 'ionic-angular';

// import ngx-translate and the http loader
import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';
import {HttpClient, HttpClientModule} from '@angular/common/http';
import {Globalization} from '@ionic-native/globalization';
/****************************Pages*******************************/
import {myApp} from './app.component';
import {SignUp} from '../pages/sign_up/sign-up.component';

import {GlobalizationService} from '../providers/common_service/globalisation.service';


// required for AOT compilation
export function HttpLoaderFactory(http: HttpClient) {
    return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

@NgModule({
    declarations: [
        myApp,
    ],
    imports: [
        IonicModule.forRoot(myApp, {
            mode: 'ios'
        }),
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: HttpLoaderFactory,
                deps: [HttpClient]
            }
        })
    ],
    bootstrap: [IonicApp],
    entryComponents: [
        myApp,
        SignUp,
    ],
    providers: [
        Globalization,
        GlobalizationService,
        //TODO TEST
        {provide: ErrorHandler, useClass: IonicErrorHandler}
    ]
})
export class AppModule {
}


Файл компонента приложения:app.component.ts

import {Component, ViewChild} from '@angular/core';
import {Platform} from 'ionic-angular';

import {GlobalizationService} from '../providers/common_service/globalisation.service';
import {SignUp} from '../pages/sign_up/sign-up.component';

@Component({
    templateUrl: 'app.html'
})

export class myApp {
    @ViewChild(Nav) nav: Nav;

    rootPage: any = SignUp;

    pages: Array<{ title: string, component: any }>;

    constructor(private globalizationService: GlobalizationService) {

    }

    protected initializeApp() {
        this.globalizationService.initializeLocalization();
        this.platform.ready().then(() => {
            //Function initializeLocalization can also call here 
        });
    }
}


GlobalizationService: globalisation.service

import { Injectable } from '@angular/core';
import { Globalization } from '@ionic-native/globalization';
import { TranslateService } from '@ngx-translate/core';

@Injectable()
export class GlobalizationService {
    public userLang:any;
    constructor(private globalization: Globalization,public translateService: TranslateService){}

    /*
     *  Function to initialize localization for application
    */
    public initializeLocalization(){
        console.log('in init location');
        this.globalization.getPreferredLanguage()
        .then(res => {
            console.log(res);
            if(res.value=="fr-FR"){
             this.userLang="fr";
             this.useLanguage(this.userLang);
            }
            else{
                this.translateService.setDefaultLang('en');
            }
        })
        .catch(e => {
            console.log(e)
            this.translateService.setDefaultLang('en');
        });
      }

    /**
     * Function to set language for application
     * @param language: Language to use
     */
    public useLanguage(language: string) {
        this.translateService.use(language);
    }
}
...