我正在爲我的網站和SEO optimisaion編寫元數據服務,看來我無法通過錯誤。我不知道爲什麼。我有我的html控制器標籤插入頭標記
ng-controller="MetaDataCtrl"
。我在Angular開始工作,我在線上學習教程。
我發現這個代碼:dynamic metadata in angular
Main.js
var app = angular.module('WebApp', [
'ngRoute'
]);
angular.module("WebApp").service("metadataService" ["$location", "$rootScope", function($location, $routescope) {
var self = this;
self.tags = {};
// Set custom options or use provided fallback (default) options
self.loadMetadata = function loadMetadata(metadata) {
metadata = metadata || {};
metadata.title = metadata.title || 'BNL Consulting';
metadata.description = metadata.description || 'We are BNL Consulting.';
document.title = metadata.title;
self.tags = metadata;
};
// Make sure data gets reloaded when navigation occurs
$rootScope.$on('$routeChangeSuccess', function (event, newroute, oldroute) {
self.loadMetadata(newroute.metadata);
});
}
]),
/**
* Configure the Routes
*/
app.config(['$routeProvider', '$locationProvider', function($routes, $location) {
$location.html5Mode(true).hashPrefix('!');
$routes
// Home
.when("/", {templateUrl: "partials/home.html",
controller: "PageCtrl",
metadata: {
title: 'This is my title',
description: 'This is Desc.' }
})
}]);
app.controller('PageCtrl', function (/* $scope, $location, $http */) {
});
.controller('MetadataCtrl', function ($scope, metadataService) {
$scope.meta = metadataService;
});
非常感謝你。這是完美的圖片。 On3更多的事情是在你的網站上使用prerender io? – user3187715
@ user3187715,我們已經開始使用Prerender在一系列社交渠道(Facebook,Twitter,LinkedIn等)上實現完全動態的元數據,因爲他們的抓取工具仍然無法解析Javascript。話雖如此,這個答案適用於搜索引擎,並將爲這些流行的社交網絡上的大多數簡單用例提供基本的覆蓋。 – Andrew