2017-07-05 10 views
-1

工場からデータを取得しています。リクエスト後いくつかのプロパティを定義するデータはリロード時にのみロードされますか?

http.get('app/propertyType/get.php').then(function (response) 
      { 

      if (response.data) { 
       var data = response.data;     

       dataFactory.propertyTypes = angular.extend({ 
        asArray: data 
       } 
       }); 
      } 
     }); 
getPropertyTypes: function() { 
       return this.propertyTypes; 
      } 

 $scope.propertyTypes = DataFactory.getPropertyTypes(); 
     $scope.$watch(function() { 
      return DataFactory.getPropertyTypes(); 
     }, function (newValue) { 
      if (newValue) { 
       $scope.propertyTypes = newValue; 
      } 
     }); 

ので、それが正常にこの問題を解決するためにdata..howロードするためにリロードが必要とどのようにイムは、コントローラになって...ザッツ?私はルートを変更するたびに、それは既にページに読み込まれているはずです。

+0

あなたのルート設定で 'resolve'機能を使うことができます。 Route resolveは約束を受け入れるので、約束が解決された後にのみページが読み込まれます。 –

答えて

0

あなたは状態の定義でresolveブロックを使用することができますルートに入る前に、なめらかをロードするために、ui.routerモジュールを使用している場合は、$state.reload();

+0

thats問題は..リロードしたくありません。ルートロード時にデータをロードする必要があります – waseemak

+0

次にrouteProviderを使用して –

0

を使用することができ、任意の条件で状態を再ロードします。 例:

$stateProvider.state('state1', { 
    controller:'controller', 
    templateUrl:'url', 
    resolve: function(DataFactory){ 
     DataFactory.getPropertyTypes(); 
    } 
}) 

はまた、あなたがDataFactory.getPropertyTypes()

EDITからpromiseオブジェクトを返す必要があり、この作品を作るために:UもresolvengRoute内のルート定義を使用することができます。 Hereあなたはそれを行う方法の詳細を読むことができます。

+0

Imに解決策を使用できます。 – waseemak

+0

@waseemak、私の編集を参照してください。あなたは 'routeProvider.when()'コンフィグレーションで 'resolve'ブロックを使うこともできます –

+0

この問題を解決するためにコントローラを変更するにはどうにかしていますか? – waseemak

関連する問題