【发布时间】:2016-03-28 17:07:36
【问题描述】:
我写了一个 plunker 来看看如何使用 bindToDirective 来隔离作用域并使用指令控制器来调用主控制器功能,但是,我做错了。你能推荐一下吗?
这是笨蛋:http://plnkr.co/edit/UJLjTmIiHydHr8qRzAsX?p=preview
代码示例:
.controller('Ctrl', function() {
var self = this;
self.func = function() {
console.log('In the controller function');
};
})
.directive('myDirective', [ function() {
var self = {};
self.link = function (scope, elem, attrs, ctrl) {
elem.bind('click', function () {
ctrl.ctrlFunc();
});
elem.addClass('fa fa-file-excel-o fa-lg');
};
return {
restrict: 'E',
scope: {},
controller: function () {
},
controllerAs: 'DirCtrl',
bindToController: {
ctrlFunc: '&'
},
link: self.link
};
}])
将主控制器功能与指令关联的html示例:
<div ng-controller="Ctrl">
<my-directive ctrlfunc="Ctrl.func()"></my-directive>
</div>
【问题讨论】:
标签: angularjs