34

在标签上声明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";

4

2 回答 2

15

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

于 2013-10-08T18:23:54.597 回答
13

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

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

于 2015-05-26T15:00:45.793 回答