2017-08-29 15 views
2

私はOutlookアドインでAngularを使用しています。 Outlook for Windowsでインデックスページを読み込んだ後にコンポーネントが読み込まれないというエラーが表示されます。これは、ChromeとFirefoxを使用したOutlook Web Appでは発生していません。Office.jsはまだ完全にロードされていません:Outlook Angularアドイン

エラーメッセージは次のとおりです。

SCRIPT5022: Office.js has not been fully loaded yet. Please try again 
later or make sure to add your initialization code on the Office.initialize function. 
polyfills.bundle.js (2741,25) 

これは自分の質問のための

import { enableProdMode } from '@angular/core'; 
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 

import { AppModule } from './app/app.module'; 
import { environment } from './environments/environment'; 
import * as $ from 'jquery'; 

declare let Office:any; 

function launch() { 
    const platform = platformBrowserDynamic(); 
    platform.bootstrapModule(AppModule) 
    .then((success: any) => { 
     console.log('SampleAddin: bootstrap success', success); 
    }) 
    .catch((error: any) => { 
     console.log('SampleAddin: bootstrap error', error); 
    }); 
} 

Office.initialize = reason => { 
    console.log('Office intialize.....'); 

    $(document).ready(function() { 

    if (environment.production) { 
     enableProdMode(); 
    } 

    launch(); 

    }); 

} 

答えて

2

回答が私のindex.tsです:私は見通しのMacとWindowsのコンポーネントをロードすることができませんでした。しかし、これをpolyfills.tsに追加した後、これはIE 11でも動作しており、他のブラウザも壊れていないと思われます。

+1

Mac用のOutlookでは、IE11ではなくカスタムWebkit実装を使用しています。つまり、これは面白いです。 Office.initialize()を起動させるためにshimが必要な理由を理解できていないか分かりません。私は、このシムが修正されたものを壊していたコンポーネントが何かと不思議です。 –

+0

はい、私はそれが以前は働いていなかったし、windows.Office.initialize()の見通しもpolyfills.bundle.jsで起こったので、IE 11のことを言及しました。私はshimsがブラウザの競争力を作るために使われていると思います。 (https://angular.io/guide/browser-support) –

+1

これは間違いなく、シムとポリフィルはブラウザ間の互換性のために使用されています。ここで奇妙なことは、あなたが他のエラーを取得していないということです。通常、初期化の根本原因が呼び出されないことを指摘する追加のエラーが発生することが予想されます。また、MacとWindowsの両方でブラウザエンジンがかなり異なると考えても、これが失敗したことは間違いです。 –

関連する問題