AngularJS:ng-include或指令

时间:2014-06-07 20:49:34

标签: angularjs

我的角度应用程序中有一个顶级菜单。由于菜单是静态的,因此不包含在ng-view中。 我可以将菜单源保留在index.html中,但为了更清晰的标记,我决定将其拉成部分。

现在我的问题:使用ng-include和单独的控制器或实现自定义指令是否更好?

我真的没有重复使用代码所以我认为ng-include会很好,但是指令会更加感觉更多"角度方式" ...

3 个答案:

答案 0 :(得分:1)

ng-include可以为您的应用程序加载部分视图(我假设您的index.html是一个带有一个ng-view部分的母版页。)

加载的每个部分都可以拥有自己的控制器(例如,如果你有一个带有'热门新闻'的div从数据库中取出东西,你可以使用ng-include包含部分视图,让新视图有一个ng-controller指令,它将执行ajax调用以从db中获取东西。

只有在需要额外的功能时才会添加指令 如果你可以没有它,那么为什么要打扰呢?

答案 1 :(得分:1)

  

更好的做法是使用ng-include和单独的控制器或   实现自定义指令呢?

最佳做法总是主观的。

我采用了这种方法:

  1. 如果我想构建以供重用;我创建了一个指令。
  2. 如果我想为组织目的分离代码,我使用ng-include

答案 2 :(得分:1)

我会认真地建议查看ui-router(https://github.com/angular-ui/ui-router),它为您提供了极大的灵活性来设置具有不同部分(主要,左导航,内容)的布局页面。使用Angular设置页面结构是一种更灵活的方法,这样您就不必重复自己。它也非常强大,允许您根据应用程序中的人员位置精确控制页面的不同部分。

文档在解释它方面做得相当不错,但尝试着重于讨论多个命名视图的领域。

ng-include可以正常工作,但是如果你想要更多控制,ui-router就是你的选择。