2016-08-19 12 views
1

私はangularJSの新機能ですので、私はまだやることの "角度の仕方"を学んでいるのでアドバイスを求めています。角度1〜3のコントローラー

私はlogin/register/forgotten_passwordビューを構築し始めましたが、これは正常に動作します。だから、ルーティングは基本的に次のようになります。

mainApp.config(function ($routeProvider) { 
$routeProvider 
    .when('/login', 
    { 
     controller: 'loginCtrl', 
     templateUrl: 'views/login.html' 
    }) 
    .when('/register', 
    { 
     controller: 'registerCtrl', 
     templateUrl: 'views/register.html' 
    }) 
    .when('/dashboard', 
    { 
     controller: 'dashboardCtrl', 
     templateUrl: 'views/dashboard.html' 
    }) 
}) 

今ここで問題および/または私が持っている質問です:ログイン成功後

が、あなたはng-viewにロードされるダッシュボードにリダイレクトされます。ダッシュボードは確かにビューですが、アプリケーション(サイドバー、トップバー、チャットなど)を入力すると、コントローラとテンプレートが増えるはずです。

これにどのようにアプローチしますか?

また、情報が何らかの形で役立つかもしれない場合に備えて、他のものを処理するためにhtml要素にglobalCtrlもあります。

+0

私はui-routerを推奨します。名前付きビューのような素晴らしい機能があります。 – scokmen

答えて

1

あなたはもうコントローラで考えるべきではありません。むしろ「コンポーネント」で考える。この(より良い)アプローチを学ぶ方法については、インターネット上の記事がたくさんあります。ここに開始する:Refactoring Angular Apps to Component Style

tl; dr;ビューのすべてのセクション/部分に対してコンポーネント(要素ディレクティブ)を作成します。あなたのケースでは、<dashboard>,<sidebar>,<topbar>、...

コンポーネントにルーティングすることができます(そして、すべきです)!詳細はissueを参照してください。ここでは、これを達成するための「実生活」の例を示します。https://github.com/ui-router/sample-app-ng1

+0

OK、私はこのアプローチが好きですが、どこか実際の例がありますか?私はまだ記事を読んでいると私の質問は:これらの3つのコンポーネントでダッシュボードに入力したら、に切り替わるようにルーティングをどうやって処理するのですか? – YannickHelmut

+0

それにネストされた状態と子ルートを使用することができます。https://github.com/angular-ui/ui-router/wiki/nested-states-%26-nested-views –

+0

例を追加しました –

0

これはAngular JSで$routeProviderを使用していることを示しています。角度JSでルートを定義するのに$routeProviderを使用すると、1つのルートは1つのビューのみを指すことができ、$routeProviderを使用するネストされたビューの概念はありません。

ビュー内に複数のテンプレートがあるとすると、1つのビュー内にネストされたビューがあることを意味します。残念ながら、Angularの$routeProviderはそれを提供していません。しかし、現在はui-routerが導入されています。ある状態に複数のサブ状態を定義することができ、各サブ状態は異なるテンプレートを指すことができます。次のリンクを見て、簡単な手順に従ってアプリケーションのビューと入れ子になったビューをパワーアップしてください。

ui-router

関連する問題