根据值

时间:2016-02-23 08:04:48

标签: angularjs

我有三种商品类型(' A'' B'' C'),使用不同的控制器,当选择商品时我需要知道在什么控制器中调用什么功能

例如,假设一个类型为' A'已被选中,我们想要修改此项目,因此我们按下“编辑”按钮。按钮

<button type="button" class="btn btn-default" ng-controller="" ng-click="edit(item)" > <i class="fa fa-pencil"></i> </button>

但是如何设置正确的控制器(&#39; AController&#39;)?

我能想到的唯一方法是使用ng-show和ng-hide,如下所示:

<button ng-show="item.Type == 'A'" type="button" class="btn btn-default" ng-controller="AController" ng-click="edit(item)" > <i class="fa fa-pencil"></i> </button>

但是这将为每个crud选项提供三个按钮(每种类型一个)(我将能够创建新的,编辑,查看和删除项目),这相当于12个按钮。

有更好的方法吗?

1 个答案:

答案 0 :(得分:-1)

如果项目(A,B和C)是对象。您可以在它们上定义方法并从视图中调用它们,这应该将您引导到它们所源自的正确控制器。

离。 在控制器中:

function AController() {

    A = {prop1: val1, prop2: val2, ... editItem: editItem}

    function editItem() { this == A }

}

在视图中:

ng-click="item.editItem()"