如何在指令标记中访问隔离范围的属性? 简化示例:
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';
}
}
});
&#13;
<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>
&#13;
在这个例子中,我需要从指令的范围中获取my_prop
属性。有可能以某种方式这样做吗?
答案 0 :(得分: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>'