1

私は - ng-view - templateアイテムの機能を作成し、同じテンプレートには保存されたアイテムをロードするディレクティブが1つ含まれています。テンプレートに存在するディレクティブとディレクティブには、データの独自のスコープがあります。

今、アイテムを作成してすぐに保存すると、アイテムのリストが表示されません(ディレクティブから)。

誰も私がこれを解決する方法を教えてもらえますか?アイテムを保存した後、すぐに指示がリフレッシュされます。

注:ディレクティブ・リンク機能は、$httpを呼び出してデータを取り出し、ディレクティブ・テンプレートに取り込みます。他のhtmlテンプレートにはディレクティブ要素が追加されています。

htmlテンプレート:(別のコントローラとスコープを持っています)。

<div>.....code</div> 
    <div class="col-md-12"> 
    <parts-list></parts-list> 
    </div> 

ディレクティブコード:

return { 
      templateUrl: 'partsListView.html', 
      restrict: 'E', 
      scope: {partList: '='}, 

templateで:ディレクティブで

(function() { 
    angular.module("application") 
     .directive("partsList", function (partService) { 
      return { 
       templateUrl: 'partsListView.html', 
       restrict: 'E', 
       scope: {}, 
       link: function ($scope) { 
        $scope.partList = [{}]; 
        RetrieveParts = function() { 
         $scope.partList=partService.RetrieveParts(); 
        }; 
       } 
      }; 
     }); 
})(); 
+0

何が間違っているかを理解するためのコードを追加できますか? –

+0

コードで編集しました。 – dsi

答えて

1

を使用してどのように分離された範囲を参照してください、あなたのReceiveParts変数は、適切な閉鎖を持っていません。また、この関数を呼び出していますか?私はこの関数がどこで実行されるのか分かりません。

link: function ($scope) { 
       $scope.partList = [{}]; 
       RetrieveParts = function() { 
        $scope.partList=partService.RetrieveParts(); 
       }; 
      } 

それは些細な単に私が$タイムアウトサービスと同期して必要なロジックをラップすることにより、サイクルを消化angularjs年代と同期して機能ロジックをリンクディレクティブのいくつかを実行できるようになり、私が学んだ簡単なトリック($ timeoutは単にsetTimeoutコールの後に$ scope。$ apply())を続けたものです。このトリックを行うと、コードは次のようになります。

link: function ($scope) { 
       $scope.partList = [{}]; 
       $scope.fetchedPartList = false; 

       $timeout(function() { 
        $scope.partList = partService.RetrieveParts(); 
        $scope.fetchedPartList = true; 
       }); 
      } 

さらに、partListが設定された後にブール値が設定されていることがわかります。あなたのHTMLでは、この変数でng-if(またはng-show/hide)を実行することで、適切に解決されたリストのみを表示することができます。

私はこれがあなたを助けてくれることを願っています。

+0

私は$ timeoutで試しましたが、呼び出されませんでした。このディレクティブが含まれているメインテンプレートでは、独自のスコープのフラグ値が更新されています。 – dsi

+1

ディレクティブのレシピからスコープを削除してみてください。問題の原因となっている分離スコープが作成されます。すべてのコードなしで言うのは難しいです。 –

+0

これで、親スコープからhtmlに適用されます。私は$タイムアウト(..)を維持する必要がありますか? – dsi

0

使用isolated scope UIがUPDで更新する場所のリストがある

<parts-list partList="list"></parts-list> 

atedデータ。

は手始めにbasic Example

+0

ディレクティブでリストを渡すには?私は '='でディレクティブにリストオブジェクトを渡しましたが、ディレクティブには取り込まれません。 – dsi

関連する問題