如何从自定义指令中包含的ui-grid中的按钮调用周围控制器中的方法?

时间:2016-01-12 15:20:43

标签: angularjs angular-ui-grid

[tldr]当网格包装在自定义指令中时,如何在列模板中创建按钮从网格周围的控制器调用方法? [ktxbye]

要解释一下,这里有3个插件:

  1. P1)ui-grid

    中的基本操作列

    http://plnkr.co/edit/nYqZsKRYbTA0aFXVZOoV

  2. P2)相同但Controller为vm

    http://plnkr.co/edit/b7x4Jjec5utkzSCrShMA

  3. P3)在我的网格中包含ui-grid(操作按钮不再起作用)

    http://plnkr.co/edit/74AdcFywgNZgeGJn4nrb

  4. 在我的应用程序中,事情变得更复杂,我确实设法让自定义列中的按钮调用my-grid的控制器上的方法(通过grid.appScope.vm.FunctionName;在我的网格上面的P3中没有甚至有一个控制器,这是一个简化的例子),但我认为我可能在错误的方向上挖得太深,所以...... 你如何让P3中网格列中的按钮调用MainCtrl :: Test方法?

1 个答案:

答案 0 :(得分:0)

经过一些急救人士的帮助(通过ui-grid闪光聊天),我觉得我有一个不错的答案。

As documented ui-grid(3.x)使用​​隔离范围,但允许您的模板通过$scope.grid.appScope覆盖外部范围。

我没有意识到,当您设置网格选项时,您可以通过设置appScopeProvider选项来覆盖grid.appScope将返回的内容,并且可以轻松地将其设置为您可能具有的范围你正在构建网格时很方便。

因此,对于我以前的插件中的场景,这里只是将appScopeProvider: $scope添加到网格选项中的解决方案

http://plnkr.co/edit/0THPYZXPmqhfWYGo2ebE