这可能是游戏的后期,Angular 2是该区域的新手,但我最近在项目的一个角落遇到了这个问题。我没有参与过如此规模的许多Angular应用程序(关于团队成员的贡献),我想知道为什么这段代码实现如下:
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>
问题:
我试图理解为什么/如何分配这样的嵌套控制器,而没有专用的角度控制器?这个破坏(假设)惯例/混合不同的目的不是吗?
答案 0 :(得分:1)
从本质上讲,你是正确的,但有些控制者的责任有限,以至于它是两个邪恶中的较小者。 要么将文件夹与另一个控制器文件混合在一起,要么快速将其写入它将被使用的位置。
简而言之,您应该问的问题是:
如果这两个问题都是肯定的答案,请将其写为内联。
答案 1 :(得分:1)
这样做的主要原因是很容易维护像这样的小型控制器。这非常有用,特别是如果您的控制器将用于非常小的功能,并且您不需要专门的控制器。
特别是如果应用程序很大,这有助于保持树的有序性。