1
如何让我的指令调用父母的控制器功能?我有一个指令,它看起来像这样:角度指令调用父控制器功能
HTML:
<div ng-app="myapp" ng-controller="mainController as mainCtrl">
some body text<br>
<a href="javascript:;" ng-click="mainCtrl.myfunc()">Click Me from body</a>
<photo photo-src="abc.jpg" caption="This is so Cool" />
</div>
的Javascript:
var app = angular.module('myapp',[]);
app.controller('mainController', function(){
var vm = this;
vm.myfunc = myfunc;
function myfunc(){
console.log("Log from myfunc");
}
});
app.directive('photo',function(){
return {
restrict: 'E',
template: '<figure> <img ng-src="{{photoSrc}}" width="500px"> <figcaption>{{caption}}</figcaption> <a href="javascript:;" ng-click="mainCtrl.myfunc()">Click Me</a></figure>',
replace: true,
scope: {
caption: '@',
photoSrc: '@'
}
}
});
当我点击Click Me from body
链接,它显示控制台日志消息预期。但是,当我点击Click Me from directive
时,什么也没有发生。我怎样才能使它工作?
使用'&'将函数传递到'scope',就像用'@'传递其他参数一样。 – Claies
检查此videotutorial关于隔离示波器。它包含您需要的实际示例,它可能对您有用https://egghead.io/lessons/angularjs-understanding-isolate-scope – Mindastic