2017-01-05 2 views
2

私はモバイルアプリケーションを開発するためにIonic 2を使用しています。TypeError:navigator.currentLangは関数ではありません

  • コルドバCLI:6.3.1
  • イオンFrameworkのバージョン:2.0.0-rc.4
  • イオンCLIバージョン:2.1.18
  • イオン次は私のイオンのインストールの情報ですアプリのLibのバージョン:2.1.9
  • イオンのAppスクリプトのバージョン:0.0.47
  • IOS-デプロイバージョン:インストールされていない
  • IOS-SIMバージョン:インストールされていない
  • OS:Windowsの10
  • ノードバージョン:v6.9.2
  • Xcodeのバージョン:私は次のクラスを含む活字体/ JavaScriptを事前に定義された種類の様々な拡張が含まれているextension.tsファイルを持っている

をインストールしていません:

:私は、コマンドを実行すると

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

私は 'platform.ready()。then(...)'コールバックの中で 'app.componet.ts'に' navigator.currentLang'を使っています。私は 'app.componet.ts'の上に' ../ extensions 'の 'import {}'という行を使って拡張をインポートしています。 – 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

関連する問題