Angular 1.5.8 Component,在ng-repeat中获取父上下文

时间:2017-01-23 12:20:56

标签: angularjs angularjs-ng-repeat

我正在创建一个动态菜单,其中在数据库中配置了ng-click操作模板。

<ul class="dropdown-menu dropdown-menu-right" id="widget-{{$ctrl.id}}-context-menu">
    <li ng-repeat="Menu in $ctrl.menu">
        <a href="" ng-click="$parent.evaluateFn(Menu.Template)">{{Menu.Name}}</a>
    </li>
</ul>
  1. 如何从ng-repeat引用父上下文,以便我可以解析模板字符串(例如'$ ctrl.handleClick('abc')')来制作点击事件? $ parent和$ ctrl在ng-repeat中不起作用。
  2. 将字符串转换为ng-click事件的正确方法是什么? 我应该怎么做

1 个答案:

答案 0 :(得分:0)

包含组件的Product始终是隔离的,我不确定您是否可以通过这种方式访问​​它,您不应该这样做。您需要做的是从父控制器/组件绑定该函数。

从父级绑定函数:( $scope是父级)

$ctrl

将绑定添加到组件中:

<my-component action="$ctrl.evaluateFn">

在你的标记中使用它:

bindings: {
    action: '&'
}

您可以使用您想要的任何内容而不是<ul class="dropdown-menu dropdown-menu-right" id="widget-{{$ctrl.id}}-context-menu"> <li ng-repeat="Menu in $ctrl.menu"> <a href="" ng-click="$ctrl.action(Menu.Template)">{{Menu.Name}}</a> </li> </ul>

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