在html标签上声明ng-app和ng-controller是不是很糟糕?

Nei*_*eil 34 javascript angularjs

它是不好的做法,同时声明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";

kon*_*tur 15

您应该能够通过$window抽象访问和设置标题,从而无需在html标签上放置控制器.


MJL*_*MJL 13

到目前为止,我认为不会有任何问题.唯一的影响是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 
Run Code Online (Sandbox Code Playgroud)

当涉及到相同的标记时,

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

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

在这里你无法从元素范围获得rootcope,但是谁在乎.