84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
现在越来越多的网站都在使用spa技术,前端自己路由,局部刷新页面,来实现的单页应用也就webapp,相比较之前的整站都是独立的页面,每个页面都有单独的html来写上<title>你是猴子派来的逗比么</title>,那单页应用大家是怎么处理页面title问题的了
<title>你是猴子派来的逗比么</title>
在stackoverflow上面看到一个答案,他是这样实现的
先在html上面加了一个全局的controller:
<html ng-app="plunker" ng-controller="MainCtrl">
接着写了一个factory:
app.factory('Page', function(){ var title = 'default'; return { title: function() { return title; }, setTitle: function(newTitle) { title = newTitle; } }; });
然后index.html主页面中就可以通过<h1>{{ Page.title() }}</h1>获取页面标题了
index.html
<h1>{{ Page.title() }}</h1>
具体对应的那个页面要设置标题就很简单了,只要把这个Page注入到你的controller里面就可以了
Page
function Page2Ctrl($scope, Page) { Page.setTitle('title1'); }
这里是具体的实现:http://plnkr.co/edit/0e7T6l?p=info
js 中使用 document.title = '...' 就能修改 title 了
js
document.title = '...'
title
如果想要效果更好,可以使用 H5 的新特性 history.pushState(state, title, url) ,这个方法不但能修改 title ,还能同时修改 url 地址,并将这些信息记录到历史堆栈中,当用户使用浏览器的返回按钮时会得到更佳的体验。
H5
history.pushState(state, title, url)
url
<title>{{mainAppCtrl.title}}</title>
在stackoverflow上面看到一个答案,他是这样实现的
先在html上面加了一个全局的controller:
接着写了一个factory:
然后
index.html
主页面中就可以通过<h1>{{ Page.title() }}</h1>
获取页面标题了具体对应的那个页面要设置标题就很简单了,只要把这个
Page
注入到你的controller里面就可以了这里是具体的实现:http://plnkr.co/edit/0e7T6l?p=info
js
中使用document.title = '...'
就能修改title
了如果想要效果更好,可以使用
H5
的新特性history.pushState(state, title, url)
,这个方法不但能修改title
,还能同时修改url
地址,并将这些信息记录到历史堆栈中,当用户使用浏览器的返回按钮时会得到更佳的体验。