2015-05-09 73 views
0
调用函数

我的观点是用我的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

你不能,控制器在那里支持视图和相互依赖不支持,除非形式是使用'scope'的父子层次结构。您需要将常用功能移至服务。 – Chandermani

回答

1

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

能够工作是把callMethodFromTaskController()的输出上task.methodOutput最简单的事情,然后把methodOutput在一个div:<div ng-bind-html="task.methodOutput"></div>

有可能是调用这个在运行时的一个原因。改为将功能放在控制器上,而不是将功能放在task上。这已经在范围:

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

我想你会发现,在长期来看角思维更兼容。

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

在这种情况下,你会通过任务指令,像这样:

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

您可以了解更多有关指令here

+1

指令完成了这项工作! –

+0

不错!很高兴我能帮上忙 :-) –