angularjs - Angular - 不同的路由,相同的模板/ Controller ,不同的加载方法

标签 angularjs routing angularjs-routing

我想使用路由,但我总是想使用相同的模板和 Controller 。我有这样的路线:

**a/:albumid**


**i/:imageid**

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

所以区别仅在于数据加载。执行此操作的最有效方法是什么?

也可以动画 ng-show 吗?像jQuery的slideDown之类的东西?

最佳答案

看看这篇文章,它描述了一种方法来做你想做的事:

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"
    })

然后在您的 Controller 中您可以访问 $route.current.action并做适当的事情。诀窍是在您的 Controller 中创建一个函数来完成所有工作(文章称之为 render() ),然后在 $routeChangeSuccess 触发时调用该函数:
$scope.$on(
   "$routeChangeSuccess",
   function( $currentRoute, $previousRoute ){
        // Update the rendering.
        render();
    }
);

关于angularjs - Angular - 不同的路由,相同的模板/ Controller ,不同的加载方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16062434/

相关文章:

angularjs - 用于页面路由和模板/部分/RESTful API 的不同基本 URL

angularjs - 避免 ng-view 在 $location.search 更新 GET 参数时获取 "wiped"(更新)

javascript - 如何使用 ng-table 进行服务器端分页?

ios - iOS 6 MapKit 是否适用于早期版本的 iOS?

for-loop - 使用 range for loop slices/map 注册多个路由

routing - 有没有办法通过 DependencyInjection 从 Symfony2 包导出路由

javascript - 使用函数通过 $routeProvider 定义 Controller

javascript - Ionic&AngularJS,超时未取消

javascript - AngularJS 指令 - 从 $rootscope 接收广播

android - 在 Ionic/Angular 中显示从 API 下载的 PDF