2016-05-12 8 views
1

ディレクティブタグで隔離されたスコープのプロパティにアクセスするにはどうすればよいですか? 簡体例:この例ではディレクティブから隔離されたスコープのプロパティへのアクセス

angular.module('app', []) 
 
    .controller('myController', function() { 
 
     var result_el = document.getElementById("result"); 
 
     this.log = function(text) { 
 
      var p = document.createElement("p"); 
 
      p.innerHTML = text; 
 
      result_el.appendChild(p); 
 
     } 
 
    }) 
 
    .directive('myDirective', function() { 
 
     return { 
 
      restrict: 'E', 
 
      scope: { 
 
       'click_fn': '&myClick' 
 
      }, 
 
      template: '<span ng-click="click_fn()">Click me!</span>', 
 
      link: function(scope, element) { 
 
       scope.my_prop = 'text property'; 
 
      } 
 
     } 
 
    });
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script> 
 

 
<div ng-app="app" ng-controller="myController as mCtrl"> 
 
    <my-directive my-click="mCtrl.log(my_prop)"></my-directive> 
 
</div> 
 
<div id="result"></div>

私はディレクティブのスコープからmy_propプロパティを取得する必要があります。何とかこれを行うことは可能ですか?

答えて

1

単離スコープ(DDO)のためのディレクティブ定義オブジェクトディレクティブテンプレートに以下のように

scope: { 
     click_fn: '&myClick' // click_fn should not be string 
     }, 

なければならない、

指令テンプレート

以下のようなオブジェクトリテラル(エイリアシング)にパラメータを渡す必要があります
template: '<span ng-click="click_fn({my_prop:my_prop})">Click me!</span>' 

Plunker

関連する問題