1

我有可能无法正确解释我的问题。让我试试。

我正在使用 Angular 开发单页应用程序。这个应用程序基本上显示了在线小说系列的剧集。有一个导航栏,其中包含查询菜单(例如,最新剧集、特定日期的剧集、具有特定标签的剧集等)。对于这些查询中的每一个,我都想要一个单独的 url。

/latest- 应该显示最新一集

/tag/:tagname- 应该返回带有该标签的所有剧集。

对于所有这些查询,结果视图是相同的(剧集列表)。所以我将对所有路线使用相同的部分。

我的问题是,我真的应该为每个查询创建一个新控制器吗?像LatestEpisodeController,,TagController

无论如何我可以使用 url 来确定用户想要什么并从同一个控制器中运行该查询?

4

3 回答 3

2

是的,您可以使用单个控制器进行多个路由..您可以在控制器中创建不同的功能,并在每个功能中执行相应的工作。在我的情况下,我为不同的 url 创建了不同的 html 页面,并为 html 页面注册了相同的控制器,在 html 页面中,我在 div 部分使用 ng-init 调用了控制器方法。

于 2014-03-05T12:27:57.633 回答
2

当然你可以在路由定义中使用相同的控制器,问题是这样做的目的是什么?稍后调试它会更糟,如果您有共享功能,最好将其变成工厂或服务,然后在控制器中使用。

但答案是肯定的,您可以使用相同的控制器并根据即 $location.path() 实现不同的行为

于 2014-03-05T10:32:18.307 回答
1

您可以根据需要使用相同的控制器和相同的视图... $location 如果您愿意,可以帮助您获取当前路径或完整的 url,您可以根据您的路径调用您的服务...

在这里我写一个小例子让你明白

柱塞

于 2014-03-05T11:16:33.693 回答