私はAngularJSで書かれたElectron Appで作業しています。電子アプリのメインプロセスでは、私はDownloadItemイベントを待ち受けています。したがって、ユーザーがファイルをダウンロードするたびに、イベントが発生します。私のMain.jsには、次のコードがあります。物事の角度側に 独自のコントローラ内の角度ハンドルイベント
win.webContents.session.on('will-download', (event, item, webContents) => {
item.once('done', (event, state) => {
if (state === 'completed') {
win.webContents.send('download-message', 'completed', item.getSavePath());
} else if (state === 'interrupted') {
win.webContents.send('download-message', 'failed');
}
})
});
、私は(アプリケーションの開始点を表して)「メイン」コントローラーでこのようなイベントを待っています。だから、ここで私はこのようになりますいくつかのコードを持っている:これはうまく動作しますが、それは一種の醜いメインアプリケーションコントローラでこれらのイベントのすべてを処理するために感じている
const { ipcRenderer } = require('electron');
ipcRenderer.on('download-message', function (event, method, filepath) {
if (method === 'completed') {
// Do something interesting
} else if (method === 'failed') {
// Do something interesting
}
});
。私はそれを独自のコントローラ(例えばdownloadController)に分けたいと思います。
私は、このイベントを独自のサービス(たとえばdownloadsService)で聞くことを考えましたが、私はアプリケーションのビュー(たとえば、いくつかの成功/失敗メッセージを表示する)を操作したいので、これはこの機能の適切な場所になります。
私はこの機能を特定のコントローラに分ける良い方法を探しています。
多分Angularとそのコントローラの概念を理解できないかもしれないので、アドバイスが本当に役に立ちます。
ありがとうございます!
ありがとうございました。尋ねる前にドキュメントを読んでいるはずです。 – Founded1898