角度を使用して単一ページアプリケーションを作成しようとしており、ビューに基づいてページタイトルを動的に変更したいとします。角度が予想外に本体内のタイトルタグ
以下<!-- index.html !-->
<html ng-app="MyApp">
<head>
<page-title></page-title> <!-- ....................LINE 1 !-->
<script type="text/javascript"
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.js">
</script>
<script type="text/javascript"
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular-route.js">
</script>
<script type="text/javascript"
src="/js/index.js">
</script>
</head>
<body>
<nav-bar></nav-bar>
<div ng-view></div>
...
は私の指示のコードである:予想通り
app.directive('pageTitle', function() {
return {
controller: 'titleController',
template: '<title>{{ page.title }}</title>' //.............LINE 2
}
});
タイトルが変更されている。私は、次のコードに示すようにディレクティブを使用してそれをやってみました<head>
タグ内にあるべきコードがあれば、タイトル、スタイル、スクリプトタグを含めて本文の中を移動するということを除いて、すべてが完全に機能しています。これはSEOにとっては悪いことです。私は問題を検索し、thisリンクで同じことをするいくつかの代替ソリューションを見つけましたが、この異常の正確な解と説明は見つかりませんでした。
<title><page-title></page-title></title> << LINE 1
template: '{{ page.title }}' << LINE 2
そして、これはそれがさらに予期せぬ取得します。私も次のようにLINE 1とLINE 2を変えてみました。タイトルはまったく変更されず、代わりに<page-title>
タグのディレクティブが定義されていないかのように、すべてのページのタイトルに直接<page-title></page-title>
が印刷されます。これらの異常の両方についてAngularで説明したいと思います。 :(
'$ scope.page.title'をどのように定義しますか?コントローラコードを追加できますか? –