2017-01-05 2 views
2

Я использую Ionic 2 для разработки мобильного приложения. Ниже приведены сведения о моей ионной установке:ТипError: navigator.currentLang не является функцией

  • Кордова CLI: 6.3.1
  • Ионного Framework версии: 2.0.0-rc.4
  • Ионных C Версия: 2.1.18
  • Ионных App Lib версия: 2.1.9
  • ионные App Сценарии версия: 0.0.47
  • КСН-Deploy версии: Не установлено
  • КСН-сим версии: Не установлено
  • ОС: Windows 10
  • Узел Версия: v6.9.2
  • версия Xcode: Не установлено

У меня есть extension.ts файл, который содержит различные расширения предопределенных типов Машинопись/JavaScript, включая следующий класс :

export {}; 

declare global { 
    interface Navigator { 
     currentLang() : string; 
    } 
} 

Navigator.prototype.currentLang = function() { 
    var userLang = navigator.language.split('-')[0]; 
    userLang = /(en|it)/gi.test(userLang) ? userLang : 'en'; 
    return userLang; 
}; 

Когда я запускаю команду ionic serve консоли разработчика Google показывает следующее сообщение об ошибке:

TypeError: navigator.currentLang is not a function

В чем проблема? Я что-то забыл?

+0

Можете ли вы показать часть вашего кода, который использует эту функцию? Как вы импортируете 'extension.ts'? –

+0

Я использую 'navigator.currentLang' в' app.componet.ts' внутри 'platform.ready(). Then (...)' callback. Я импортирую расширения вверху 'app.componet.ts', используя строку' import {} из '../ extensions''; – Balthier

ответ

0

Составленный выход этого кода:

import { } from '../extensions'; 
console.log(navigator.currentLang()); 

Если предположить, что вариант модуля по умолчанию:

console.log(navigator.currentLang()); 

Там нет импорта в файле JS поэтому при попытке запустить его в браузере он не загружается ../extensions.js и поэтому navigator.currentLang не определено.
Это потому, что вы ничего не импортировали из модуля.

Синтаксис для этого есть:

import '../extensions'; 
console.log(navigator.currentLang()); 

Что компилирует:

require("../extensions"); 
console.log(navigator.currentLang()); 
+0

Это работает !!! Большое спасибо. – Balthier

Смежные вопросы