2016-11-15 3 views
1

これは、ブロック2の新しい子供であるAngular 2でゲームに遅れているかもしれませんが、最近私はプロジェクトのコーナーでこれを見つけました。私は(貢献チームメンバーに関して)このスケールの多くの角度アプリに働いていませんでした、と次のように私は、このコードが実装されている理由を見てみたい:ng-controllersの「直接ネスト」。これは正常ですか?

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> 

質問:私は理解しようとしている

理由/推理/利益を割り当てることであろうものをこのようなネストされたコントローラは、専用の角度コントローラを持たない?これは違う目的を混ぜ合わせたものではないのですか?

答えて

1

本質的にあなたは正しいですが、いくつかのコントローラーにはそのような限られた責任しか持たないため、2つの悪のうちの小さいものです。 別のコントローラファイルを使用してフォルダをクリックアップするか、またはの場所にあるにすばやく書き込みます。要するに

あなたが尋ねるべきである質問は次のようになります。このコントローラは、ここでしか

  1. を使用するのでしょうか?
  2. サイズはコンパクトですか?

これらの質問の両方に回答がある場合は、インラインで書いてください。

+0

...これは私のやや純粋かもしれませんが、私はちょうどこの1つのアイテムのコントローラーを持っているという利点はありませんか? (それが指示またはコンポーネントの場合、それは違うでしょう)しかし、コントローラがこの1つのプロパティしか持たない場合、なぜこのプロパティは最初の親の一部ではないのですか? –

+0

@RohanBüchnerこの特定のケースでは、コントローラがトップレベルのコントローラであるために難しいと思います。しかし、実際にあなたが再利用可能なコンポーネントを構築していない場合は、サイズが制限されているので、それをすべて親コントローラに配置してください。 –

1

これの主な理由は、このような小さなコントローラを維持することは簡単です。これは、コントローラが非常に小さな機能に使用され、実際に専用のコントローラが必要ない場合に特に便利です。

特にアプリケーションが大きい場合は、ツリーの整理に役立ちます。

関連する問題