在本文中,您将会了解到关于如何通过AngularJS路由保留数据?的新资讯,同时我们还将为您解释angularjs路由的相关在本文中,我们将带你探索如何通过AngularJS路由保留数据?的奥秘,分析
在本文中,您将会了解到关于如何通过AngularJS路由保留数据?的新资讯,同时我们还将为您解释angularjs 路由的相关在本文中,我们将带你探索如何通过AngularJS路由保留数据?的奥秘,分析angularjs 路由的特点,并给出一些关于angularjs – Activeadmin采用角度js路由,而不是rails路由、angularjs – Angular Firebase:如何快速加载大量数据?、angularjs – Angular Js路由谷歌Chrome问题、angularjs – Angular2 @ angular / router 3.0.0-alpha.3 – 路由更改时如何获取路由名称或路径的实用技巧。
本文目录一览:- 如何通过AngularJS路由保留数据?(angularjs 路由)
- angularjs – Activeadmin采用角度js路由,而不是rails路由
- angularjs – Angular Firebase:如何快速加载大量数据?
- angularjs – Angular Js路由谷歌Chrome问题
- angularjs – Angular2 @ angular / router 3.0.0-alpha.3 – 路由更改时如何获取路由名称或路径
如何通过AngularJS路由保留数据?(angularjs 路由)
我是AngularJS的新手,正在尝试为自己构建一个简单的小应用程序。我有正在使用抓取的应用程序的JSON数据$resource
,并且该数据在多个视图/路由之间应该相同。但是,当我转到新路线时,JSON数据(存储为$scope.data
)不再可用于新视图。我该怎么做才能将此数据传递到新视图,而无需再次获取?(本教程的电话目录应用程序每次都会根据我的判断重新获取此数据。)
据我了解,$rootScope
可以做到这一点,但似乎人们对此并不满意。如果这没有什么意义,我深表歉意。我在这里深处潜水。
答案1
小编典典使用服务存储数据。将该服务注入需要访问此数据的每个控制器中。每次创建并执行控制器时(因为您切换到另一个视图/路线),它都可以向服务请求数据。如果服务还没有数据,它可以向服务器发出请求,并向控制器返回承诺(有关操作方法,请参见下文)。如果服务包含数据,则可以立即将其返回给控制器。
请注意,服务是单例的,与控制器不同。
另一个变体:创建服务时,它可以去获取数据本身,然后将其存储以备后用。控制器可以比$ watch服务上的属性或功能。
angularjs – Activeadmin采用角度js路由,而不是rails路由
我按照active-admin post from ryan bates的步骤进行操作.
我执行了以下过程:
>在Gemfile中添加了gem activeadmin
>运行捆绑安装
> rails g active_admin:install –skip-users(因为我已经有了设计)
>运行rake db:migrate
>重新启动服务器
如果我运行rake路线,我有以下路线:
admin_root /admin(.:format) admin/dashboard#index admin_dashboard GET /admin/dashboard
当我去localhost:3000 / admin.页面被重定向到角度主页,其中包含以下代码:
<div ng-view></div>
我可以将activeadmin的视图添加到angular的路径,但它没有任何视图,只有app / admin / dashboard.rb,它由rails应用程序中的application.html.erb呈现.但是,我没有application.html.erb,因为我的应用程序主要基于angular.js.任何人都可以帮我解决这个问题,我怎么能跳过角度路线并占用rails路线来渲染activeadmin页面?
解决方法
如果这就是你所做的,它可能会搞乱铁路路线.
angularjs – Angular Firebase:如何快速加载大量数据?
目标:我想显示Firebase中的所有数据(固定数量的项目:~1600).
问题:AngularFire调用“已加载”大约需要10秒钟.数据大约120 kb,我觉得这可能会更快. (例如,从.json文件加载数据集需要大约一秒钟).
有没有办法加快速度?
解决方法
$http.get('https://dinosaur-facts.firebaseio.com/dinosaurs.json') .success(function(dinos) { console.log('The dinosaurs are coming!',dinos); });
不确定大量数据会有多快,但可能值得一试.
angularjs – Angular Js路由谷歌Chrome问题
代码1
的index.html
<!DOCTYPE html> <html> <head> <title>Test</title> </head> <body ng-app="plunker"> <div ng-view=""></div> <script src="angular.min.js"></script> <script src="angular-route.js"></script> <script src="app.js"></script> </body> </html>
app.js
var app = angular.module('plunker',['ngRoute']); app.config(function ($routeProvider) { $routeProvider.when('/login',{ controller: '',templateUrl: 'login.html' }).otherwise({ redirectTo: '/login' }); });
的login.html
Hello from login!
码2
所有其他事情都与app.js中的更改相同
var app = angular.module('plunker',['ngRoute']); app.config(function ($routeProvider) { $routeProvider.when('/login',templateUrl: 'http://localhost:8888/AngularJs/login.html' }).otherwise({ redirectTo: '/login' }); });
错误代码1: –
XMLHttpRequest无法加载file:// localhost / Users / karthicklove / Documents / Aptana Studio 3 Workspace / Object_Javascript / Angular_Js / Routing / login.html.交叉源请求仅支持协议方案:http,chrome-extension-resource.
错误代码2: – [$sce:insecurl] http://errors.angularjs.org/1.2.26/ $sce / insecurl?p0 = http:// localhost:8888 / AngularJs / login.html出错(本机)
并且还像这样更改模板URL
templateUrl: '/AngularJs/login.html'
如果你有疑问在这里发布.
angularjs – Angular2 @ angular / router 3.0.0-alpha.3 – 路由更改时如何获取路由名称或路径
this.router.changes.subscribe((val) => { var path = this._location.path(); if (path.indexOf('page-name') !== -1) { this.page; } })
解决方法
我不确定以下解决方案是否是最佳实践,性能影响是什么,但我能够通过以下方式获取路由器的NavigationEnd事件上的活动路由:
import { Component,OnInit,OnDestroy } from '@angular/core'; import { ROUTER_DIRECTIVES,Router,NavigationEnd } from '@angular/router'; @Component({ selector: 'navbar',directives: [ROUTER_DIRECTIVES],template: ` ... ` }) export class NavBarComponent implements OnInit,OnDestroy { private sub: any; constructor(private router: Router) { } ngOnInit() { this.sub = this.router.events.subscribe(e => { if (e instanceof NavigationEnd) { console.log(e.url); } }); } ngOnDestroy() { this.sub.unsubscribe(); } }
无论您在网址树中的深度或导航到/从的位置,每次更改路径时都会触发此操作.
今天关于如何通过AngularJS路由保留数据?和angularjs 路由的讲解已经结束,谢谢您的阅读,如果想了解更多关于angularjs – Activeadmin采用角度js路由,而不是rails路由、angularjs – Angular Firebase:如何快速加载大量数据?、angularjs – Angular Js路由谷歌Chrome问题、angularjs – Angular2 @ angular / router 3.0.0-alpha.3 – 路由更改时如何获取路由名称或路径的相关知识,请在本站搜索。
本文标签: