Подтвердить что ты не робот

Неправильно ли объявлять ng-app и ng-controller на теге html?

Неправильно ли объявлять теги 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";

4b9b3361

Ответ 1

Вы должны иметь доступ и установить заголовок с помощью абстракции $window, тем самым устраняя необходимость размещения контроллера в теге html.

Ответ 2

Я не думаю, что до сих пор не будет никакой проблемы. Единственное влияние на то, что корневой костяк больше не читается из 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 из области видимости элемента, но кто заботится.