10

ルートを使用したいのですが、常に同じテンプレートとコントローラーを使用したいです。次のようなルートがあります。

**a/:albumid**

**i/:imageid**

最初のケースでは、画像の配列をロードしてリストに追加したいと考えています。2 番目のケースでは、1 つの画像を読み込んでリストに追加します。

したがって、違いはデータのロードのみです。これを行う最も効率的な方法は何ですか?

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

4

2 に答える 2

22

この記事をチェックしてください。それはあなたが望むことを正確に行う方法を説明しています:

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

私はテクニックを使用しました、それはうまくいきます。

一言で言えば、ルーティングについては次のようになります。

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

次に、コントローラーで$route.current.action、適切なことにアクセスして実行できます。トリックは、コントローラーですべての作業を行う関数を作成し (記事ではそれrender()を呼び出しています)、$routeChangeSuccess が発生したときにその関数を呼び出すことです。

$scope.$on(
   "$routeChangeSuccess",
   function( $currentRoute, $previousRoute ){
        // Update the rendering.
        render();
    }
);
于 2013-04-17T21:36:17.680 に答える