我想使用路由,但我总是想使用相同的模板和 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/