Javascript 您是否必须在视图中使用ng控制器,或者您可以在$routeProvider中声明它?

Javascript 您是否必须在视图中使用ng控制器,或者您可以在$routeProvider中声明它?,javascript,angularjs,angularjs-scope,angular-ui,Javascript,Angularjs,Angularjs Scope,Angular Ui,我最近意识到我没有使用ng Controller在HTML中声明我的控制器的官方范围,但只在$routeProvider中提到了它,而且一切似乎都很好 有人知道这样离开它有什么坏处吗?仅在$routeProvider中定义并引用我的控制器?如果您不是从不同的地方呈现HTML(我到目前为止还没有看到这种情况),那么没有区别,只是确保您没有两次意外地声明它(一次在$routeProvider中,另一次在HTML中).您只能在$routeProvider中声明控制器。否则,它将实例化两次 在某些情况下

我最近意识到我没有使用ng Controller在HTML中声明我的控制器的官方范围,但只在$routeProvider中提到了它,而且一切似乎都很好


有人知道这样离开它有什么坏处吗?仅在$routeProvider中定义并引用我的控制器?

如果您不是从不同的地方呈现HTML(我到目前为止还没有看到这种情况),那么没有区别,只是确保您没有两次意外地声明它(一次在$routeProvider中,另一次在HTML中).

您只能在$routeProvider中声明控制器。否则,它将实例化两次

在某些情况下,它是透明的,但很容易导致臭虫行为


作为参考,角向导提供了关于如何使用NG VIEW:

的代码示例,我认为它是正确的,并且您这样做的优势,因为它更好地将视图和绑定控制器的上下文保持在同一位置。

请记住,在路线定义中提供控制器基本上与将
ng controller=“MyCtrl”
放在包含与路线视图匹配的
ng view
指令的元素中相同


此外,如果您需要更复杂的路由(例如:层次视图和控制器),那么我会考虑使用,而不是<代码> nGunt

他不必在$RouthIdvor中声明它。我所有的声明都是在HTML本身中进行的,这是一个不错的用法。@OmriAharon我不知道怎么做(从HTML声明ng路由),你能给我指一些示例(链接、博客、JSFIDLE)吗?@BiAiB你正常地声明路由,除非你忽略了控制器。在您的观点中,您使用了@BiAiB,正如Andy所说,我只是指控制器声明。