我可能无法正确解释我的问题。让我尝试。
我正在使用angular开发单页面应用程序。这个应用程序基本上显示在线小说系列的剧集。有一个导航栏,其中包含查询菜单(如,最新剧集,特定日期的剧集,具有特定标签的剧集等)。对于每个查询,我想要一个单独的URL。
/latest
- 应显示最新一集
/tag/:tagname
- 应该返回带有该标记的所有剧集。
对于所有这些查询,结果视图是相同的(剧集列表)。所以我将对所有路线使用相同的部分。
我的问题是,我是否应该为每个查询创建一个新的控制器?比如,LatestEpisodeController
,TagController
?
无论如何,我可以使用url来确定用户想要什么并在同一个控制器中运行该查询吗?
答案 0 :(得分:2)
当然你可以在路由定义中使用相同的控制器,问题是什么目的呢?稍后进行调试会更糟糕,如果你有共享功能,最好把它变成工厂或服务,然后在控制器中使用。
但答案是肯定的,您可以使用相同的控制器并根据$ location.path()实现不同的行为
答案 1 :(得分:2)
是的,你可以使用单个控制器进行多次路由.. 您可以在控制器中创建不同的功能,并在每个功能中执行相应的工作。 在我的情况下,我为不同的URL创建了不同的html页面,并为html页面注册了相同的控制器,在html页面中,我在div部分使用ng-init调用了控制器方法。
答案 2 :(得分:1)
您可以根据需要使用相同的控制器和相同的视图... 如果您愿意,$ location可以帮助您获取当前路径或完整网址,您可以根据自己的路径致电您的服务......
我在这里写一个小例子来获取想法