为什么在AngularJS中的路由中指定模板而不是控制器内部?

时间:2014-02-25 18:51:14

标签: angularjs

在我看来,正确的方法是在控制器文件中而不是路由文件中声明templateUrl。在什么情况下,使用相同的控制器与不同的模板?如果你想要一个没有路由的应用程序,但每个控制器的不同文件中有模板,你会怎么做?

2 个答案:

答案 0 :(得分:2)

在某些情况下,您可能希望重新使用同一个控制器,但根据所访问的路径将其绑定到不同的视图。考虑一下您可以重新使用控制器并对yoursite.comyoursite.com/mobile有不同观点的情况。

答案 1 :(得分:1)

  

在什么情况下会使用不同的控制器   模板?

我认为@Justin对基于计算机的网站和基于移动的网站提出了不同观点的建议;同时使用相同的控制器功能。

我想不出一个更好的例子。

  

如果你想要一个没有路线的应用,但是有模板,你该怎么办?   每个控制器的不同文件?

您可以使用ng-include和ng-controller将控制器分配给模板,而无需使用路径。有点像这样:

<div>
 <div ng-include="'SomeTemplate.html'" ng-controller="SomeCtrl" ></div>
 <div ng-include="'SomeOtherTemplate.html'" ng-controller="SomeOtherCtrl" ></div>
</div>