我想在 Angular 中复制 Google 的主页功能,这让我很伤心。我浏览了 Egghead 的视频并阅读了整个 API,但没有具体的例子说明这种确切的行为。我想做的是以下几点:
- 用户来到主页,出现主搜索栏和通用黑色标题栏
- 用户搜索某些东西,只有当他按下“搜索”时,主搜索栏才会消失,url 变为 mysite.com/q/searchTerm 并且一个新的子标题出现在黑色标题栏下方,就像谷歌的主页一样,删除主搜索字段并放置在主标题栏下方的灰色栏中(如果您关闭了即时搜索)
- 搜索结果出现在现在消失的主搜索栏的位置,就像谷歌一样,但这部分我可以处理路线和视图。两个相同控制器之间的布局切换让我很困扰。
到目前为止,我尝试过的是:
- 为两个 MainCtrl 子控制器创建一个父控制器,并设置其 scope.data = {searchHeaderDisplay: false}
- 让两个子控制器共享相同的名称 (MainCtrl),因为它们共享完全相同的功能
- 在标题栏中制作一个 ng-show="data.searchHeaderDisplay" 和主要的 ng-hide="data.searchHeaderDisplay" 然后尝试在搜索按钮的 ng-click 上切换 data.searchHeaderDisplay。这不起作用 - 没有产生任何效果。
我还在接受 AngularJS,所以我确信它很简单,我只需要一个或两个实际示例来学习。
编辑:将辅助标题(具有较小的搜索字段)与搜索结果一起推入单独的视图模板会更好吗,并且只将根视图作为主要搜索字段?该文档对有关视图和路由的最佳实践非常松懈,尤其是将有多个控制器执行某些操作的路由。