好吧,我对AngularJS很陌生。我正在转换一个相当粗糙的应用程序(我已经写了几天了),从主要使用jQuery转到使用rather。我在研究如何缓解我遇到的所有书签和后退按钮头痛时,发现了有角度的“中流”。
在我的主页上,我有一个搜索结果的表格。(如果用户到达时没有传递任何参数,则调用默认搜索来构建表。当然,他们可以使用页面上的搜索表单来显示不同的结果集。)
现在,当用户单击某个表项时,我希望该表或多或少“成为”项目详细信息页上的下拉菜单,该菜单可用于从一个表项导航到下一个表项。(在任何特定时间,列表通常都不超过20项。)相同的数据,相同的排序顺序,只是在一个不同的控件中。
而不是构建“子”页面,以便(除了进行Ajax调用以提取项目详细信息),它再次运行完全相同的查询,然后构建一个下拉列表.我想也许有更有效的方法。
也许,将对象的整个对象从搜索结果传递到Details控制器上?(在某种程度上,我还必须为用户实际单击的任何项目传递一个id,以获得详细信息。)
在jQuery中,我已经在同一个page...and上构建了下拉列表和结果表,然后只需使用show()和隐藏()来替代我显示的结果。每当选择表行或下拉选项时,我将获取项详细信息数据,并填充/显示隐藏的详细信息div。
发布于 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/
https://stackoverflow.com/questions/24874484
复制相似问题