从指令

问题描述:

访问隔离范围的属性如何访问指令标签中的隔离范围属性? 简单的例子:从指令

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财产。以某种方式可以做到这一点吗?

为分离物范围(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