角度 - 不同的路线,相同的模板/控制器,不同的加载方法

ewo*_*com 10 routing angularjs angularjs-routing

我想使用路由,但我总是想使用相同的模板和控制器.我有这样的路线:

**a/:albumid**
Run Code Online (Sandbox Code Playgroud)

**i/:imageid**
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,我想加载一个图像数组并将它们添加到列表中.在第二种情况下,我想加载一个图像并将其添加到列表中.

所以区别仅在于数据加载.最有效的方法是什么?

还可以为ng-show制作动画吗?有点像jQuery的slideDown吗?

Tho*_*ter 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"
    })
Run Code Online (Sandbox Code Playgroud)

然后在您的控制器中,您可以访问$route.current.action并执行相应的操作.诀窍是在你完成所有工作的控制器中创建一个函数(文章称之为render()),然后在$ routeChangeSuccess触发时调用该函数:

$scope.$on(
   "$routeChangeSuccess",
   function( $currentRoute, $previousRoute ){
        // Update the rendering.
        render();
    }
);
Run Code Online (Sandbox Code Playgroud)