当前位置: 首页 > 面试题库 >

如何通过AngularJS路由保留数据?

姬昀
2023-03-14
问题内容

我是AngularJS的新手,正在尝试为自己构建一个简单的小应用程序。我有正在使用抓取的应用程序的JSON数据$resource,并且该数据在多个视图/路由之间应该相同。但是,当我转到新路线时,JSON数据(存储为$scope.data)不再可用于新视图。我该怎么做才能将此数据传递到新视图,而无需再次获取?(本教程的电话目录应用程序每次都会根据我的判断重新获取此数据。)

据我了解,$rootScope可以做到这一点,但似乎人们对此并不满意。如果这没有什么意义,我深表歉意。我在这里深处潜水。


问题答案:

使用服务存储数据。将该服务注入需要访问此数据的每个控制器中。每次创建并执行控制器时(因为您切换到另一个视图/路线),它都可以向服务请求数据。如果服务还没有数据,它可以向服务器发出请求,并向控制器返回承诺(有关操作方法,请参见下文)。如果服务包含数据,则可以立即将其返回给控制器。

请注意,服务是单例的,与控制器不同。

另一个变体:创建服务时,它可以去获取数据本身,然后将其存储以备后用。控制器可以比$ watch服务上的属性或功能。



 类似资料:
  • 我有AngularJs ui路由器在我的应用程序。我需要加载js文件基于我的状态。 当主控状态加载时,headerController、homeController和footerController具有不同的js文件。我们需要加载控制器js文件。是否可以通过UI路由器?

  • 主要内容:AngularJS 实例,路由设置对象,AngularJS 实例本章节我们将为大家介绍 AngularJS 路由。 AngularJS 路由允许我们通过不同的 URL 访问不同的内容。 通过 AngularJS 可以实现多视图的单页 Web 应用(single page web application,SPA)。 通常我们的 URL 形式为 http://xnip.cn/first/page,但在单页 Web 应用中 AngularJS 通过 #! + 标记

  • 我正在创建一个React Router应用程序,并且正在学习身份验证。以下是部分内容: 登录组件(Login.jsx) 在后端验证用户的凭据 在本地存储中设置身份验证令牌 返回用户的数据 用数据设置状态 将状态传递给管理组件 管理组件(Admin.jsx) 受专用路由保护(请参阅privateroute.jsx) 基本上是容器组件 将用户的数据传递给并呈现显示/编辑数据的其他组件 导航栏上的Aut

  • 有什么简单的方法可以实现这一点吗? 这是我导航到路线的代码 这是我的路由模块 基本上,我希望执行与CreateAlbum组件是当前组件的子组件相同的操作,在这种情况下,我将使用@Input()

  • 问题内容: 如何使用ng-click而不是使用ui-sref的链接来更改route.state。 我已经试过了: 与 但这是行不通的。有任何想法吗? 问题答案: 查看ui-router文档Wiki。 最好的解决方案是使用。例如, 这是文档中特定功能的链接:https : //github.com/angular-ui/ui- router/wiki/Quick-Reference#stategot

  • 问题内容: 我有一个单页应用程序,实际上只有一个页面。只有一个视图使用angularjs完成了许多javascript / ajax逻辑,但是没有路由到其他视图。 因此,我想在网址末尾混搭hashbang(#/)。我可以以某种方式完全关闭angularjs路由吗? 顺便说一句:我了解Htm5Mode,但是我希望它能在所有浏览器中使用。 问题答案: 如果没有定义,则不会进行路由,因此您的url中不会