Javascript 角度ui路由器控制器范围
当我使用常规角度控制器时,我将控制器属性放在DOM元素中,控制器控制该元素中的所有DOM树,例如Javascript 角度ui路由器控制器范围,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,当我使用常规角度控制器时,我将控制器属性放在DOM元素中,控制器控制该元素中的所有DOM树,例如 <div ng-controller="myController"> 此控制器的作用域是什么?您不应该在div中手动声明控制器,除非您的目的是使ReportController的子级(控制器)控制DOM的某些嵌套和特定部分 作为孩子,myController将继承ReportController的作用域,后者是模板中最高级的控制器 避免在HTML中声明控制器的好处是,使用完全相同的HT
<div ng-controller="myController">
此控制器的作用域是什么?您不应该在
div
中手动声明控制器,除非您的目的是使ReportController
的子级(控制器)控制DOM的某些嵌套和特定部分
作为孩子,myController
将继承ReportController
的作用域,后者是模板中最高级的控制器
避免在HTML中声明控制器的好处是,使用完全相同的HTML,跨潜在的各种控制器提高HTML模板的可重用性
一个典型的例子是一个编辑表单和一个添加表单(CRUD),它们映射到各自不同的控制器,但相同的HTML模板。它将控制templateUrl中的内容。让我们想象一下,有一个div占位符,templateUrl.html文件中的所有内容都将放在其中,并且声明的控制器将相应地紧挨着div占位符。您可以查看angular ui router src以了解其工作原理。好的,因此我通过ui router定义控制器。这个控制器的范围是什么?我在代码中放置了{var}}变量,并且只能在ui视图元素中看到这些值。我想在包装ui视图的布局中放置值。可以从模板
report.html
访问此控制器中的所有变量。它只针对ui视图的内部。然后,包装视图应该声明自己的“父”状态,并定义自己的控制器。例如,一个名为main
(针对布局)的状态和另一个名为main.report
(针对布局中的嵌套ui视图)的状态。
.state('report', {
url: '/site/:site/report',
templateUrl: 'minderbinder/report/view/report.html',
controller: 'ReportController'
})