构建Real World AngularJS应用程序,我应该如何在html中声明我的控制器。我需要在index.html中声明all吗?

时间:2016-02-23 13:14:49

标签: javascript angularjs html5 design-patterns architecture

我的申请基于例如Northwind数据库,我使用AngularJS视图和大多数开发人员采用的典型文件结构,为每个不同的对象构建了视图以保持CRUD。

我有一个问题需要改进,首先从我看到的所有示例中,您需要在index.html文件中声明您的控制器。如果用户使用的一个模块不需要,则所有其他控制器都需要加载客户端上的所有控制器。有没有更好的方法来声明每个视图需要的控制器?

这是单页LOB的正常行为,是否预先加载所有必需的依赖项,无论是否需要?

1 个答案:

答案 0 :(得分:1)

没有。不要在HTML中声明您的控制器。 您在模板中添加的逻辑越少,您的应用就越灵活。 在HTML中包含controllers的问题是,如果某些嵌套控制器具有相同的实例var(示例foobar),那么您就不知道将显示哪一个:

<div ng-controller="firstController">
...
   <div ng-controller="secondController">
   ...
   {foobar}

然后,最好的方法是使用模块和路由。通过路由,您可以告诉AngularJS您的HTML应该由aController控制。 我想找一个好的应用程序,看看at this one。 它由AnguarJS团队开发,并展示了一些良好的实践。您可以注意到,没有任何HTML文件包含对控制器的引用。