首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angularjs:如何将整个对象传递给另一个控制器?

Angularjs:如何将整个对象传递给另一个控制器?
EN

Stack Overflow用户
提问于 2014-07-21 20:49:57
回答 1查看 252关注 0票数 0

好吧,我对AngularJS很陌生。我正在转换一个相当粗糙的应用程序(我已经写了几天了),从主要使用jQuery转到使用rather。我在研究如何缓解我遇到的所有书签和后退按钮头痛时,发现了有角度的“中流”。

在我的主页上,我有一个搜索结果的表格。(如果用户到达时没有传递任何参数,则调用默认搜索来构建表。当然,他们可以使用页面上的搜索表单来显示不同的结果集。)

现在,当用户单击某个表项时,我希望该表或多或少“成为”项目详细信息页上的下拉菜单,该菜单可用于从一个表项导航到下一个表项。(在任何特定时间,列表通常都不超过20项。)相同的数据,相同的排序顺序,只是在一个不同的控件中。

而不是构建“子”页面,以便(除了进行Ajax调用以提取项目详细信息),它再次运行完全相同的查询,然后构建一个下拉列表.我想也许有更有效的方法。

也许,将对象的整个对象从搜索结果传递到Details控制器上?(在某种程度上,我还必须为用户实际单击的任何项目传递一个id,以获得详细信息。)

在jQuery中,我已经在同一个page...and上构建了下拉列表和结果表,然后只需使用show()和隐藏()来替代我显示的结果。每当选择表行或下拉选项时,我将获取项详细信息数据,并填充/显示隐藏的详细信息div。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-21 22:16:14

首先,我认为你应该使用某种路由,也许这会有帮助。

https://github.com/angular-ui/ui-router

第二,如果您想使用多个控制器访问同一个对象,那么您应该使用带对象的工厂,您只需要将该工厂插入到控制器中,您就可以从多个控制器访问同一个对象。下面是简短的教程,很容易理解:

https://egghead.io/lessons/angularjs-sharing-data-between-controllers

第三种选择,但不是很好,是从一个控制器发出或广播事件并发送对象,在另一个控制器中,您可以为该事件设置一个侦听器,在这里您可以找到更多信息:

http://www.theroks.com/angularjs-communication-controllers/

http://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24874484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档