ng-controller指令和路由中的控制器有什么区别?

aus*_*tin 13 javascript angularjs angularjs-directive angularjs-routing

我在AngularJS网站上完成了教程,我注意到在第7步,它们改变了控制器如何引入应用程序.最初,他们使用指令:

<body ng-controller="PhoneListCtrl">
...
</body>
Run Code Online (Sandbox Code Playgroud)

但是,它稍后会更改为使用controller属性作为一部分ng-route.

$routeProvider.
    when('/phones', {
        templateUrl: 'partials/phone-list.html',
        controller: 'PhoneListCtrl'
    }). 
    /* rest of routes here */ 
Run Code Online (Sandbox Code Playgroud)

这是进行更改的git diff.这两种技术有区别吗?

Bob*_*ger 5

控制器使用ng-controller指令:

  • ng-controller元素上创建一个新的$ scope .
  • 显式的视图到控制器连接
  • 可视与检查元素等

路线中的控制器:

  • ng-view元素上为每个路径创建一个新的$ scope .
  • 控制器可以请求路由解析中定义的依赖关系.
  • 可选的视图到控制器连接.建议使用命名约定将路由映射到控制器到视图.


qwe*_*ynl 0

在第一种情况下,控制器直接位于页面上。

一旦他们更改它,该控制器仅在页面上,如果路由是其他控制器/phones,则它是基于其他路由的其他控制器。