javascript - ng-controller 指令和路由中的 Controller 有什么区别?

标签 javascript angularjs angularjs-directive angularjs-routing

我完成了 tutorial on the AngularJS website我注意到在step 7 ,它们改变了将 Controller 引入应用程序的方式。最初,他们使用指令:

<body ng-controller="PhoneListCtrl">
...
</body>

但是,它后来被更改为使用 controller 属性作为 ng-route 的一部分。

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

这是 git diff进行更改的位置。这两种技术之间有区别吗?

最佳答案

使用 ng-controller 指令的 Controller :

  • ng-controller 元素上创建了一个新的 $scope。
  • 显式 View 到 Controller 连接
  • 通过检查元素等可见

路由中的 Controller :

  • ng-view 元素上为每个路由创建一个新的 $scope。
  • Controller 可以请求路由解析中定义的依赖项。
  • 可选的 View 到 Controller 连接。建议有一个命名约定,将路由映射到 Controller 到 View 。

关于javascript - ng-controller 指令和路由中的 Controller 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21433879/

相关文章:

javascript - 如何在javascript中检查< 2和> 4复选框

javascript - AutoDesk View 和数据 API - 返回所选元素的位置

angularjs - ng网格水平滚动问题

javascript - 从文件中读取 json 数据得到空白响应

angularjs - 观察 ngModel 的变化。$invalid 在 angular 指令中

javascript - JSLint 代码质量工具

javascript - ngRepeatWatch 似乎是 Batarang 的瓶颈

javascript - AngularJS 适当的事件与 parent 和 child 的指令出价

javascript - Angularjs 指令中 $eval 执行函数的替代方案

javascript - "Currently On Air"代表广播网站