2016-05-11 12 views
2

parentディレクティブからchildディレクティブへオブジェクトの配列を送信しようとしていますが、console.log($ scope。$ eval(attrs.model))が未定義となっています。指令間のAngularJs-shareオブジェクト配列

angular.module('tester').directive('gChart',gChart); 
    function gChart() { 

     var template = getTemplate; 
     return { 
      restrict: 'E', 
      require: "^Logs", 
      replace:true, 
      template: template, 
      scope:{ 
       model: "=" 
      }, 
      link: function($scope, $element, attrs, LogsCtrl) { 
       console.log($scope.$eval(attrs.model)); 
       LogsCtrl.show($scope.$eval(attrs.model)); 
      } 
     }; 

     function getTemplate() { 
      return'<div id="chart" style="width: 600px; height:    500px;margin: 0px auto;"></div>'; 
     } 
    } 

答えて

1

:あなたは

ので
scope:{ 
    model: "=" 
}, 

としてあなたのディレクティブの適用範囲を定義するので、これは、あなたのHTMLでは、あなたのような何かを持っている必要がありますされます指令。コーディングの標準的な角度での共有は、工場で行う必要があります。ウルの生活が楽になるでしょう。あなたが知ってもらうための助けが必要な場合は、コントローラと指令の間でデータを共有するために工場を使用してください。

+0

私はそのデータを共有するためにサービスを使用しています。工場としてラベル付けされていますか? – aemorales1

+0

工場を使用して問題を解決しました!ありがとう ! :) – monsoonrainbow

0

私たちが理解するために、すべてのコードを掲載する必要があります。また、データの配列は$scope.modelになり、attrs.modelには含まれません。私は工場を使用し、両方でその工場を注入します。このような状況では

<tester model="YOUR_DATA" ></tester>