2016-05-27 10 views
1

私はテンプレート自体の中でディレクティブを使用しようとしています。JSテンプレート自体でディレクティブを使用する

しかし、データは決して私のアプリに届きません。フィールドは空白です。

誰でも手助けできますか?

.run(function($ionicPlatform, $ionicPopup, TranslationsService) { 
    $ionicPlatform.onHardwareBackButton(function() { 
     if(true) { 

     $scope.translations = TranslationsService.getData(); 

     $ionicPopup.confirm({ 
      title: 'System warning', 
      scope: $scope, 
      template: 'MESSAGE HERE {{translations.logout}}' 
     }).then(function(res){ 
      if(res){ 
       navigator.app.exitApp(); 
      } 
     }) 
     } 
    }) 
}) 
+0

'TranslationsService.getData'メソッドを表示します。それはあなたがテンプレートを表示しようとしている解決する前に約束の呼び出しかもしれない。 –

+0

はい、私は '$ scope.translations = TranslationsService.getData();'を入れようとしましたが、うまく動作しませんでした。私の注文/構文は間違っていると思いますか?私は答えを更新しました – Yian

+0

はい。 '$ scope.translations = TranslationsService.getData();'この行は私が思う問題です。あなたは約束を返す必要があります。しかし、あなたの問題をよりよく理解するためのサービスコードを示してください。 –

答えて

0

あなたがテンプレートをコンパイルするスコープオブジェクトと確認を提供する必要があります。また必ずあなたが適切非同期getDataで動作します。

.run(function($ionicPlatform, $ionicPopup, TranslationsService) { 
    $ionicPlatform.onHardwareBackButton(function() { 
     if (true) { 

     $scope.translations = TranslationsService.getData(); 

     $ionicPopup.confirm({ 
      title: 'Exit?', 
      scope: $scope, 
      template: 'MESSAGE HERE {{translations.logout}}' 
     }).then(function(res){ 
      if(res){ 
       navigator.app.exitApp(); 
      } 
     }) 
     } 
    }) 
}) 

とケース内getDataは約束を返す非同期(async)であれば、あなたがする必要がありますこれは次のようになります:

TranslationsService.getData().then(function(data) { 
    $scope.translations = data; 
}) 
+0

ありがとうございます。しかし、私は '$ scope.translations = TranslationsService.getData();'という行を使用してもポップアップは表示されません。最後のビットを "getDataが非同期の場合"に置く場所はどこですか? 。 – Yian

+0

私は私の現在のコードが含まれるようにOPを更新しました編集 - を参照してください(私はどこTrasnalationsService.getData() – Yian

+0

あなたは 'スコープ追加していることを確認してください置くことが見つかりました:。モーダル構成で$ scope'とPOST' getData'コードを – dfsq

関連する問題