Это может быть поздно в игре с Angular 2, являющимся новым ребенком на блоке, но я недавно наткнулся на это в углу проекта. Я не работал на многих угловых приложениях такого масштаба (в отношении членов команды содействия), и я хотел бы видеть, почему этот код реализован следующим образом:«Прямое вложение» ng-контроллеров. Это нормально?
app.js:
angular
.module('myModule')
.controller('AppCtrl', ['$scope','$rootScope', function($scope, $rootScope) {
$scope.SideMenuCtrl = function ($scope) {
$scope.staticMenu = _service.getMenuList($rootScope.acctId);
};
}]);
index.html:
<!DOCTYPE html>
<html ng-app="ngApp" ng-controller="AppCtrl">
<head></head>
<body>
<header></header>
<div id='wrapper' ng-hide="hideNav()">
<div id='main-nav-bg'></div>
<nav id='main-nav' class='main-nav-fixed'>
<div class='navigation'>
<ul class='nav nav-stacked' ng-controller="SideMenuCtrl">
</ul>
<div>
<nav>
</div>
Вопрос:
Я пытаюсь понять, почему/что рассуждения/польза будет назначать вложенные контроллеры, подобные этому, и не имеющие выделенных угловых контроллеров? Разве это не нарушение (предполагаемое) соглашение/смешивание разных целей?
... это может быть несколько пуристской меня, но я не вижу преимущества просто иметь контроллер только для этого предмета? (Если бы это была директива или компонент, это было бы иначе). Но было бы ли это правильным утверждением в том, что если контроллер имеет только одно свойство, почему это свойство не является частью родительского элемента в первую очередь? –
@ RohanBüchner в этом конкретном случае Я думаю, что это будет dificult, так как контроллер является контроллером верхнего уровня . Но действительно, если вы не создаете повторно используемый компонент, и он ограничен по размеру, то, во всяком случае, помещает его в родительский контроллер. –