我想从parent =>访问一个函数我的指令中的父控制器(带有controllerAs表示法)。我正在使用角1.3.14 我有以下结构:
我不想调用$ scope。$ parent。$ parent.save(...) 有没有人有想法?
提前致谢。
答案 0 :(得分:0)
仅使用$ scope.save()。
在Angular中有scope hierarchy并且通过调用$ scope.save()指令将查看指令的作用域,如果没有save()方法,它将查看父作用域的范围,依此类推。 一个条件是指令没有isolated scope。
答案 1 :(得分:0)
除了将所需的函数传递给指令之外,没有其他方法可以做到这一点。这是在隔离范围声明中使用&
的原因。
https://docs.angularjs.org/guide/directive
当然,如果该功能只是一个实用功能,那么有更简单的方法。你可以注册一个过滤器。但是如果你想让child指令在某个事件中改变父控制器的状态,那么使用&
是最好的解决方案。
如果你需要child指令将参数传递给传递给它的函数,那么你将需要在上面的文档中使用与这句话相关的功能:
这是在指令中通过调用close({message:'closing}来指定的 目前'})。然后,本地变量消息将在其中可用 关闭表达。