Javascript 在html标记上声明ng应用程序和ng控制器是否不好?

Javascript 在html标记上声明ng应用程序和ng控制器是否不好?,javascript,angularjs,Javascript,Angularjs,在标签上同时声明ng app和ng controller是否为不良做法 例如: 这被认为是不好的做法吗?我试图动态控制我的应用程序的标记,因此我想尽早声明MainCtrl控制器,因为它的作用域在应用程序的其余部分很重要 然后我可以在MainCtrl控制器中使用{{settings.title},并让子控制器通过$scope.$parent.settings.title=“hello world”访问它您应该能够通过$window抽象来访问和设置标题,这样就不需要在html标签上放置控制器。我认为

标签上同时声明
ng app
ng controller
是否为不良做法

例如:

这被认为是不好的做法吗?我试图动态控制我的应用程序的
标记,因此我想尽早声明
MainCtrl
控制器,因为它的作用域在应用程序的其余部分很重要


然后我可以在
MainCtrl
控制器中使用
{{settings.title}
,并让子控制器通过
$scope.$parent.settings.title=“hello world”访问它

您应该能够通过
$window
抽象来访问和设置标题,这样就不需要在
html
标签上放置控制器。

我认为目前为止不会有任何问题。 唯一的影响是根范围不再可从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 

$rootScope.$id=002//来自$rootScope服务的rootScope
$(“#父”).scope().$id=002//rootscope范围从元素范围获取
$(“#子”).scope().$id=003//从元素范围获取控制器范围
当涉及到相同的标记时

<div id="parent" ng-app ng-controller='...'>

$rootScope.$id = 002    // rootscope from $rootscope service
$("#parent").scope().$id =003 // controller scope get from element scope

$rootScope.$id=002//来自$rootScope服务的rootScope
$(“#父”).scope().$id=003//控制器范围从元素范围获取

在这里,您无法从元素范围中获取rootscope,但谁在乎呢。

好吧……他们在这篇博文中这样做了:--没有提到practice tho,我只是想与大家分享一下。好问题,+1我不认为有什么问题。您需要考虑的是,现在您正在定义一个伪全局控制器。document.title=“title”当在控制器中执行任何DOM操作被认为是不好的做法时,您会在哪里使用
$window
?我所能想到的就是将
ng controller
ng title
指令一起放在body标签上,让该指令向上搜索,直到找到父文档的
head
标签。此外,那么,您将如何利用
上的
ng href
动态包含样式表?您通常可以通过ng init或其他对象(如$rootScope.object.$id)访问父级