我已经将一个控制器与一个指令关联起来,如下所示:
return function MyDirective() {
return {
scope: {},
restrict: 'E',
template: template,
controller: 'myController',
replace: true,
};
};如果我想从模板访问控制器上的方法,我需要将控制器添加到作用域的属性中吗?
模板:
<div>
<div>
<button ng-click="doSomething()">Do something.</button>
</div>
</div> 控制器:
function MyController() {}
MyController.prototype.doSomething() {
window.alert('foo');
}发布于 2015-08-19 22:53:29
您应该在访问控制器函数的指令中避免使用scope: {},因为在您的指令create isolate scope与您的控制器中存在scope: {}。
这就是为什么你不能从你的指令模板访问控制器函数的原因。
在避免scope: {}之后,使用像普通控制器函数一样的函数。
像这样:
<button data-ng-click="myFunction()">call my function</button>您可以在指令中使用链接函数中的作用域。
link: function (scope, element, attrs)https://stackoverflow.com/questions/32098081
复制相似问题