繁体   English   中英

AngularJS-使用controllerAs表示法从child-> child指令访问父控制器

[英]AngularJS - Access a parent controller from child -> child directive with the controllerAs notation

我想从我指令内的parent => parent控制器访问一个函数(使用controllerAs表示法)。 我正在使用angular 1.3.14,我具有以下结构:

  • 控制器(带保存功能)
    • (儿童)控制器
      • 带有模板的指令(和隔离范围)。 在此模板中,我有一个按钮,该按钮应从父(父)控制器调用save函数。

我不想打电话给$ scope。$ parent。$ parent.save(...)有人有想法吗?

提前致谢。

仅使用$ scope.save()。

在Angular中有作用域层次结构 ,通过调用$ scope.save()指令将查找指令的作用域,如果没有save()方法,它将查找父级作用域,依此类推。 一种条件是没有隔离的指令范围

除了将所需函数传递到指令之外,没有其他好方法。 这是在隔离范围声明中使用&的目的。

https://docs.angularjs.org/guide/directive

当然,如果函数只是一个实用函数,则有更简单的方法。 您可以只注册一个过滤器。 但是,如果您希望子指令在某些情况下更改父控制器的状态,则使用&是最佳解决方案。

如果您需要子指令将参数传递给要传递给它的函数,那么您将需要使用上述文档中与该语句关联的功能:

在指令中通过调用close({message:'forsing now''})来指定。 然后,局部变量消息将在闭合表达式中可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM