在ng-app
代码上声明ng-controller
和<html>
是不好的做法?
例如:<html class="no-js" ng-app="myApp" ng-controller="MainCtrl">
这被认为是不好的做法吗?我正在尝试动态控制应用程序的<title>
标记,所以我想尽早声明MainCtrl
控制器,因为它的范围在应用程序的其余部分很重要。
然后我可以在<title>{{settings.title}}</title>
控制器中使用MainCtrl
并让子控制器通过$scope.$parent.settings.title = "hello world";
答案 0 :(得分:14)
您应该能够通过$window
抽象来访问和设置标题,从而无需在html
标记上放置控制器。
答案 1 :(得分:12)
我认为到目前为止还没有任何问题。 唯一的影响是rootcope不再具有html标记的可读性,因为控制器范围正在覆盖它。
例如,
<div id="parent" ng-app>
<div id="child" ng-controller='...'>
$rootScope.$id = 002 // rootscope from $rootscope service
$("#parent").scope().$id =002 // rootscope scope get from element scope
$("#child").scope().$id =003 // controller scope get from element scope
当涉及到相同的标记时,
<div id="parent" ng-app ng-controller='...'>
$rootScope.$id = 002 // rootscope from $rootscope service
$("#parent").scope().$id =003 // controller scope get from element scope
在这里你无法从元素范围获得rootcope,但是谁在乎。