我有一个rootScope json数组,查看的是多个控制器,并在另一个控制器中得到更新。 json数组包含得到更新的url。视图控制器显示大约一半时间的更新URL,但是如果我重新加载页面,我会在100%的时间内获得更新的视图。 我试过使用$ scope。$ apply()和$ timeout,但它们没有区别。
请问有人可以告诉我这里有什么角度的工具吗?我希望有一个简单的方法。角:在没有页面重新加载的情况下更新视图
0
A
回答
1
去了我先前的评论的:
指数
<!doctype html>
<html ng-app="myapp">
<head>
<!--Head stuff-->
</head>
<body>
<div ng-view=""></div>
<!-- Scripts, other stuff -->
</body>
</html>
主脚本
'use strict';
angular
.module('myapp', [
//...
'ngRoute',
//...
])
.config(function (..., $routeProvider, ...) {
$routeProvider
.when('/404', {
templateurl: '404.html',
controller: 'ErrorCtrl',
controllerAs: 'errorCtrl',
title: 'You are lost'
})
.when('/', {
templateUrl: 'views/home.html',
controller: 'HomeCtrl',
controllerAs: 'homeCtrl',
title: 'Home'
})
.when('/contact', {
templateUrl: 'views/contact.html',
controller: 'ContactCtrl',
controllerAs: 'contactCtrl',
title: 'Contact Us'
})
.otherwise({
redirectTo: '/404'
});
//...
})
.run (function (...) {
//...
});
使用
<a href="/contact">Contact Us</a>
您将采用所有页面通用的基本模板代码,并将其包含在索引中。基本上,不变的东西总是在那里。否则,请将其从主页面中取出,并将其放入带有其自己的控制器的模板文件中。或者,拥有一些共享控制器,并将视图用作模板,然后将所有功能铲入指令。我其实更喜欢后一种方法,但前者如上所示。
这个解决方案值得注意的是该页面实际上只加载一次。由于您在导航到不同视图时始终保持索引,因此只需从服务器获取新模板的HTML并将其注入到视图中(ngRoute负责)。我相信默认情况下,您的网址中会有一个#
,因此您可能需要启用HTML5模式。 $locationProvider
到你的配置功能,然后添加这一行:
$locationProvider.html5Mode ({ enabled: true });
你也需要一个基地添加到您的索引文件的头部元素:
<base href="/" />
作业: Routes tutorial,HTML5 mode
如果您使用Grunt ,你可能也想看看ngTemplates。它可以真正提高性能。
相关问题
- 1. 如何在没有页面加载图标的情况下重新加载iFrame?
- 2. 在不重新加载页面的情况下更改URL
- 3. 在没有页面重新加载的情况下更改浏览器URI
- 4. 在不重新加载页面的情况下更新浏览器的网址
- 5. 在没有页面重新加载的情况下显示Joomla布局
- 6. 在没有页面重新加载的情况下保存表单数据
- 7. 在没有页面重新加载的情况下提交表单
- 8. 在没有重新加载的情况下更改网页中的文本?
- 9. 如何在不刷新页面的情况下重新加载mapquest地图?
- 10. 在不重新加载页面的情况下清除值
- 11. 在不重新加载页面的情况下请求内容
- 12. 如何在不重新加载视图的情况下更新参数?
- 13. 如何更新没有页面重新加载的Django页面?
- 14. 在不加载新页面的情况下更改网址
- 15. 在不重新加载网页的情况下更改标题
- 16. 如何在没有重新加载视图的情况下在MVC中获取更新的模型信息
- 17. 在没有重新加载页面的情况下更新Django中的表单值?
- 18. 如何在没有页面重新加载的情况下更新<ui:repeat>数据?
- 19. 在没有多核的情况下重新加载Solr配置
- 20. 重新加载页面,并显示在页面的新视图
- 21. 如何在不重新加载的情况下动态加载我的页面?
- 22. 添加新的节点视图没有重新加载页面在extjs
- 23. 如何在不重新加载页面的情况下更改网址?
- 24. GitHub如何在不重新加载页面的情况下更改URL?
- 25. Backbone.js在不重新加载页面的情况下更改网址
- 26. 如何在不重新加载页面的情况下更改网址?
- 27. Laravel:在不重新加载页面的情况下更改内容
- 28. 在不重新加载页面的情况下更改列表内容
- 29. 如何在不创建页面重新加载的情况下更改Firefox window.location.hash?
- 30. 如何在不重新加载页面的情况下更改php include?
这是一个包含多种不同可能方法的非常广泛的问题,通过提供更多细节或代码尝试更具体。 – svarog
您是否尝试过使用ngView和ngRoute?实际提供的文件不会改变,您的视图会在ngView中填充以改变用户看到的内容(以及URL)。它看起来像页面已经导航,但它没有,所以$ rootScope被保留。 –
@DominicAquilina:ngView和ngRoute都可以相互结合使用来实现我所追求的目标?或者我会使用其中一个还是另一个?到目前为止,我一直只使用控制器和服务来共享功能。 – user2917629