UNPKG

express-turnout

Version:

Pre-rendering Single-Page-Application for crawlers.

49 lines (46 loc) 1.49 kB
<!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <meta charset="UTF-8"> <title>{{meta['og:site_name'] + ' | ' + title}}</title> <meta content="{{value}}" property="{{key}}" ng-repeat="(key,value) in meta"> <base href="/"> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.14/angular-ui-router.js"></script> <script src="/express-turnout.js"></script> <script> angular.module('myApp',['ui.router']) .run(function($rootScope,$window,$location,$state){ $rootScope.$on('$viewContentLoaded',function(){ var renderedTemplate= $window.document.body.innerHTML.trim().length>0 if(renderedTemplate){ $rootScope.title= 'Welcome clawlers!'; $rootScope.meta= { 'og:site_name':$state.current.name, 'og:title':$rootScope.title, 'og:url':$location.url(), 'og:type':'article', 'og:description':angular.element($window.document.body).text(), } $window.expressTurnoutRendered(); } }); }) .config(function($locationProvider){ $locationProvider.html5Mode(true); }) .config(function($stateProvider){ $stateProvider.state('second',{ url:'/second', template:'<h1>second</h1><a ui-sref="first">first</a>', }); $stateProvider.state('first',{ url:'*path', template:'<h1>first</h1><a ui-sref="second">second</a>', }); }) ; </script> </head> <body ui-view></body> </html>