2014-03-05 31 views
1

有可能我无法正确解释我的问题。让我尝试。我们是否需要多个控制器来实现angularjs中的路由?

我正在开发使用角度的单页应用程序。这个应用程序基本上显示在线小说系列的情节。有一个导航栏,其中有查询菜单(如最新情节,特定日期的情节,特定标签的情节等)。对于这些查询中的每一个,我想要一个单独的URL。

/latest - 要显示的最新一集

/tag/:tagname - 应该返回所有情节与标签。

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

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

是否有反正我可以使用该网址来确定用户想要什么,并从同一控制器内运行该查询?

回答

2

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

但答案是肯定的,你可以使用相同的控制器,并执行不同的行为基础上,即$ location.path()

+0

感谢您的回答。正如你所提到的,考虑到未来的可维护性,我现在使用多个控制器。 – Siddharth

1

如你愿意,你可以使用相同的控制器和看法一致? $位置可以帮助,如果你希望你能尽快电流路径或完整的URL,你可以打电话给你的服务取决于您的路径...

这里我写了一个小例子,你得到的想法

PLUNKER

2

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

+0

这是新的,使用ng-init。将尝试...但是,对于多个控制器,代码现在看起来很稳定。 – Siddharth

+0

yaah,如果你的代码在多个控制器上工作正常,那么不需要改变。 – Anita

相关问题