当我使用常规Angular控制器时,我将controller属性放在DOM元素中,控制器控制该元素内的所有DOM树,例如。
<div ng-controller="myController">
当我通过ui-router连接控制器时,我通过状态配置在我的app.js文件中执行,如下所示:
.state('report', {
url: '/site/:site/report',
templateUrl: 'minderbinder/report/view/report.html',
controller: 'ReportController'
})
此控制器的范围是什么?
答案 0 :(得分:1)
您不应该在div
中手动声明控制器,除非您的目的是让ReportController
的子(控制器)控制DOM的某些嵌套和特定部分。
作为一个孩子,myController
将继承ReportController
的范围,后者是您模板的最高控制者。
避免在HTML中声明控制器的好处是使用完全相同的HTML促进HTML模板在潜在的各种控制器中的可重用性。
一个典型的例子是编辑表单和添加表单(CRUD)映射到他们自己的不同控制器但是相同的HTML模板。