2013-04-17 31 views
10

私はルートを使いたいですが、私はいつも同じテンプレート&コントローラを使いたいと思います。私は画像の配列をロードし、リストに追加したい最初のケースで角度の異なるルート、同じテンプレート/コントローラ、異なるロード方法

**a/:albumid** 

**i/:imageid** 

:私はこのようなルートを持っています。 2番目のケースでは、1つのイメージを読み込んでリストに追加します。

違いは、データの読み込みのみです。これを行う最も効率的な方法は何ですか?

また、ng-showをアニメーション化することは可能ですか? jQueryのslideDownのようなもの?

答えて

22

この記事をチェックアウト、それは正確に何をしたい行う方法について説明します。

http://www.bennadel.com/blog/2420-Mapping-AngularJS-Routes-Onto-URL-Parameters-And-Client-Side-Events.htm

私は技術を使用しました、それがうまく動作します。一言で言えば

、ルーティングのためにこのような何か:

$routeProvider 
    .when("https://stackoverflow.com/a/:album_id", { 
     action: "album.list" 
    }).when("/i/:imgid", { 
     action: "images.load" 
    }) 

次に、あなたのコントローラにあなたが$route.current.actionにアクセスし、適切なことを行うことができます。私ができるようにこれを処理するための超簡単なディレクティブを作成し

$scope.$on(
    "$routeChangeSuccess", 
    function($currentRoute, $previousRoute){ 
     // Update the rendering. 
     render(); 
    } 
); 
+1

ありがとうございます!あなたは私の一日を救った! –

0

:トリックは、すべての作業を行いますコントローラ内の関数を作成(記事はそれrender()を呼び出し)、次に際に$ routeChangeSuccess火災、その関数を呼び出すことですルートは、コントローラメソッドがルート定義内にあるRailsまたはCodeigniterルートに似ています。メソッド名はrouteProvider.whenオプションで設定され、ディレクティブはルートのテンプレートに設定されます。 参照:https://stackoverflow.com/a/22714634/250991

関連する問題