首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >访问与指令实例关联的控制器

访问与指令实例关联的控制器
EN

Stack Overflow用户
提问于 2015-08-19 22:17:59
回答 1查看 30关注 0票数 1

我已经将一个控制器与一个指令关联起来,如下所示:

代码语言:javascript
复制
return function MyDirective() {
    return {
        scope: {},
        restrict: 'E',
        template: template,
        controller: 'myController',
        replace: true,
    };
};

如果我想从模板访问控制器上的方法,我需要将控制器添加到作用域的属性中吗?

模板:

代码语言:javascript
复制
<div> 
  <div> 
    <button ng-click="doSomething()">Do something.</button>
  </div>
</div> 

控制器:

代码语言:javascript
复制
function MyController() {}

MyController.prototype.doSomething() {
  window.alert('foo');
}
EN

回答 1

Stack Overflow用户

发布于 2015-08-19 22:53:29

您应该在访问控制器函数的指令中避免使用scope: {},因为在您的指令create isolate scope与您的控制器中存在scope: {}

这就是为什么你不能从你的指令模板访问控制器函数的原因。

在避免scope: {}之后,使用像普通控制器函数一样的函数。

像这样:

代码语言:javascript
复制
<button data-ng-click="myFunction()">call my function</button>

您可以在指令中使用链接函数中的作用域。

代码语言:javascript
复制
link: function (scope, element, attrs)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32098081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档