2017-09-16 10 views
0

私のアプリケーションでは、angularJSを使用しています。私はすべてを構成しており、それはうまくいっています。しかし私の唯一の懸念は、このコンテンツをロードする前に1つのajaxメソッドを呼び出すことです。私のアプリケーションには、この設定データが非常に必要です。この応答の後、私のアプリケーションだけが動かなければなりません。AngularJs設定メソッド内にコールバックメソッドを書き込む方法

誰かが考えを持っている場合は、お勧めします。前もって感謝します。

+0

このリンクを参照してくださいhttps://docs.angularjs.org/api/ng/service/$q – Vignesh

答えて

0

あなたはいくつかの方法でそれを行うことができます。あなたは、あなたのアプリがブートストラップされる前にリクエストを実行することができます。または基本ルート設定でresolveを使用することができます。

代わりのng-appディレクティブを使用してHTMLファイルにあなたのアプリケーションをブートストラップは、あなたが次のことを実行することができます(推奨)

ブートストラップ:

import AppComponent from './app.component'; 

function Bootstrap() { 
    bootstrap(document, ['app'], { 
    strictDi: true, 
    }); 
} 

const app = angular 
    .module('app', [ 
    uiRouter, 
    ]) 
    .component('app', AppComponent); 
    .name; 

function getConfig() { 
    const initInjector = angular.injector(['ng']); 
    const $http = initInjector.get('$http'); 

    return $http.get('/api/config') 
    .then(response => response.data); 
} 

getConfig() 
    .then((res) => { 
    angular 
     .module(app) 
     .config(res); 

    bootstrap(); 
    }); 

ルートは

は、私はあなたが角度の使用をお勧め解決します-ui-router version 1.これにより、コンポーネントをロードする前に実行される関数resolveを呼び出すことができます。あなたのアプリがルート/をロードすると

function appConfig($stateProvider) { 
    $stateProvider 
    .state('app', { 
     url: '/', 
     component: 'application', 
     resolve: { 
     config: (applicationService) => { 
      return applicationsService.getConfig(); 
     }, 
     }, 
    }) 
} 

は、それがconfig解決関数を呼び出して、あなたのコントローラ内部のthis.configプロパティにデータを返します。

これは、コンポーネントのデータ依存関係を読み込むときには有効ですが、すべてのユーザーがルートページにアクセスするわけではないため、アプリケーションの設定を読み込んでいる場合には最適ではありません。 (すべてのページがapplication州の子どもであっても動作しますが、

関連する問題