2017-07-27 15 views
0

で変数を使用して、私は2つのディレクティブがあります:httpリクエストからデータを取得$scope.originalData変数を持っており、また、それを使用する機能を有している子ディレクティブから関数を呼び出すと、親ディレクティブ

指令Aを変数:

$scope.findStepEducatByActId = function(act_id){ 
     console.info('findfindStepEducatByActId',$scope.originalData); 
     if(angular.isDefined($scope.originalData.connections)){ 
      angular.forEach($scope.originalData.connections[0].con_detail,function(value,key){ 
       if(value.act_id_from == act_id){ 
        return value.educategory_from; 
       } 
       if(value.act_id_to == act_id){ 
        return value.educategory_to; 
       } 
      }); 
     } 
    }; 

flowChartと呼ばれている)指令BA

<flow-chart findStepEducatByActId="findStepEducatByActId(act_id)"></flow-chart> 
のHTMLファイルテンプレートに渡されたこの機能を持っています

そして私は、そのファイル内$scope.originalDataをプリントアウトしています:私はこれを実行すると、私は、ログ取得

angular.module('slmFlowClass').directive('flowChart', [function() { 
    return { 
     restrict: 'E', 
     templateUrl: 'scripts/modules/slmFlowClass/FlowClass.FlowChart.Template.html', 
     replace: true, 
     scope: { 
      findStepEducatByActId: '&' 
     }, 
    link: function($scope, $element, $attrs) { 
      $scope.showNodeTooltip = function($event, node){ 
       $scope.findStepEducatByActId('708663'); 
      } 
    } 

{{originalData}}

指令Bは、単純にその関数を呼び出しているfindfindStepEducatByActId undefinedを、しかし、HTML $scope.originalDataにこの変数に含まれるデータを見ることができます。 私の質問は、Bからこの関数を呼び出すと、なぜ$scope.originalDataがnullになるのですか?

答えて

0

角度指示の 'require'プロパティを使用します。あなたのディレクティブBでは 、

return { 
    restrict: 'E', 
    templateUrl: 'scripts/modules/slmFlowClass/FlowClass.FlowChart.Template.html', 
    replace: true, 
    require: 'A' 
    .... 

これについての詳細情報については、ディレクティブのための角度のドキュメントを参照してください。 https://docs.angularjs.org/guide/directive

関連する問題