从另一个嵌套控制器调用函数

时间:2015-05-09 01:06:43

标签: javascript angularjs

我的观点是使用我的ProjectController

<tbody ng-controller="ProjectController">
    <tr ng-repeat="task in tasks">
        <td class="col-md-3">{{ task.id}}</td>
        <td class="col-md-2">{{ task.taskType.name }}</td>
        <td class="col-md-2">{{ task.description }}</td>
        <td><div ng-bind-html="callMethodFromTaskController(task)"></div></td>
        <td><a href="#/tasks/{{ task.id }}" class="btn btn-xs btn-primary">Abrir</a></td>
    </tr>
</tbody>

如何调用callMethodFromTaskController TaskController内的函数来设置信息样式?

1 个答案:

答案 0 :(得分:1)

H-i,有几种方法可以做到这一点。

最简单的方法是将callMethodFromTaskController()的输出放在task.methodOutput上,然后将methodOutput放在div中:<div ng-bind-html="task.methodOutput"></div>

在运行时调用它可能是有原因的。而不是将函数放在控制器上,而是将函数放在task上。这已经在范围内了:

<div ng-bind-html="task.callMethodFromTaskController()"></div>

我认为从长远来看,你会发现它与Angular思维更加兼容。

如果 不起作用。然后你可能正在做一个特殊的控制。在这种情况下,请考虑使用“指令”(比听起来更简单,更有趣)。

在这种情况下,您将任务传递给指令,如下所示:

<tbody ng-controller="ProjectController" ng-repeat="task in tasks">
   <taskDirective task="task">
</tbody>

您可以详细了解指令here