AngularJSでシングルページアプリケーションを作成するためのプログラミングガイドライン

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...

概要

単一ページのアプリケーションはますます普及しています。 1ページのアプリケーションの動作をシミュレートするWebサイトは、モバイル/タブレットアプリケーションの感覚を提供します。 Angularは簡単にそのようなアプリを作成するのに役立ちます
簡単なアプリケーション

私たちは、ホームページをカバーする簡単なアプリを作成し、aboutと連絡します。 Angularはこれよりも複雑なアプリケーションを作成するために生まれましたが、このチュートリアルでは、大規模なプロジェクトで必要な概念の多くを示しています。
ゴール

シングルページアプリケーション
リフレッシュページの変更はありません
各ページには異なるデータが含まれています

JavascriptとAjaxはこれを行うことができますが、アプリケーションでは、Angularは処理を容易にします。
文書構造

– script.js <! – すべての角度コードを格納する – >
– index.html <! – メインレイアウト – >
– pages <! – メインレイアウトに注入されるページ – >
– home.html
– about.html
– contact.html

HTMLページ

この部分は比較的簡単です。 私たちはBootstrapとFont Awesomeを使用します。 index.htmlファイルを開き、ナビゲーションバーを使用して簡単なレイアウトを追加します。


<!- index.html ->
<!DOCTYPE html>
<html>
<head>
<!- SCROLLS ->
<!- load bootstrap and fontawesome via CDN ->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.0/css/font-awesome.css" />
<!- SPELLS ->
<!- load angular via CDN ->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<!- HEADER AND NAVBAR ->
<header>
<nav class="navbar navbar-default">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="/">Angular Routing Example</a>
</div>
<ul class="nav navbar-nav navbar-right">
<li><a href="#"><i class="fa fa-home"></i> Home</a></li>
<li><a href="#about"><i class="fa fa-shield"></i> About</a></li>
<li><a href="#contact"><i class="fa fa-comment"></i> Contact</a></li>
</ul>
</div>
</nav>
</header>
<!- MAIN CONTENT AND INJECTED VIEWS ->
<div id="main">
<!- angular templating ->
<!- this is where content will be injected ->
</div>
<!- FOOTER ->
<footer class="text-center">
View the tutorial on <a href="http://scotch.io/tutorials/angular-routing-and-templating-tutorial">Scotch.io</a>
</footer>
</body>
</html>

ページハイパーリンクでは、 "#"を使用します。 私たちは実際にabout.htmlとcontact.htmlにリンクしているとブラウザに考えさせたくありません。
角型アプリケーションモデルとコントローラ

この時点で、アプリケーションを設定する準備が整いました。 最初に角度モデルとコントローラを作成しましょう。 モデルとコントローラの詳細については、ドキュメントを参照してください。

まず、javascriptを使用してモデルとコントローラを作成する必要があります。これをscript.jsに入れてみましょう:


// script.js
// create the module and name it scotchApp
var scotchApp = angular.module('scotchApp', []);
// create the controller and inject Angular's $scope
scotchApp.controller('mainController', function($scope) {
// create a message to display in our view
$scope.message = 'Everyone come and see how good I look!';
});

次に、モデルとコントローラをHTMLページに追加して、Angularがアプリケーションのガイド方法を知るようにしましょう。 テストが機能するように、作成した変数$ scope.messageの値も表示されます。


<!- index.html ->
<!DOCTYPE html>
<!- define angular app ->
<html ng-app="scotchApp">
<head>
<!- SCROLLS ->
<!- load bootstrap and fontawesome via CDN ->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.0/css/font-awesome.css" />
<!- SPELLS ->
<!- load angular via CDN ->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular-route.js"></script>
<script src="script.js"></script>
</head>
<!- define angular controller ->
<body ng-controller="mainController">
...
<!- MAIN CONTENT AND INJECTED VIEWS ->
<div id="main">
{{ message }}
<!- angular templating ->
<!- this is where content will be injected ->
</div>

メインのdivレイヤーでは、作成したメッセージを見ることができます。 私たちのモデルとコントローラが設定され、Angularが動作していることを知り、このレイヤーを使用して別のページを表示します。

メインレイアウトにページを挿入する

Ng-viewは現在のルート(/ home、/ about、/ contact)のテンプレートを含む角度指示で、特定のルートに基づいてファイルを取得し、それをメインレイアウト(index.html)に配置します。

div#mainのサイトにng-viewコードを追加して、レンダリングするページをどこに配置するかをAngularに伝えます。


<!- index.html ->
...
<!- MAIN CONTENT AND INJECTED VIEWS ->
<div id="main">
<!- angular templating ->
<!- this is where content will be injected ->
<div ng-view></div>
</div>
...

ルートとビューの設定

1つのページアプリケーションを作成しているため、ページを更新したくないため、角度ルーティングの機能を使用します。

Angularファイルを見て、アプリに追加してみましょう。 ルーティングの処理にAngularの$ routeProviderを使用します。 このように、Angularは新しいファイルを取得してレイアウトに挿入することで、すべての魔法の要求を処理します。

AngularJS 1.2とルーティング

バージョン1.1.6以降、ngRouteモデルはAngularに含まれていません。 ドキュメントの冒頭でモデルを宣言することによって、このモデルを使用する必要があります。 このチュートリアルはAngularJS 1.2用に更新されました:


// script.js
// create the module and name it scotchApp
// also include ngRoute for all our routing needs
var scotchApp = angular.module('scotchApp', ['ngRoute']);
// configure our routes
scotchApp.config(function($routeProvider) {
$routeProvider
// route for the home page
.when('/', {
templateUrl : 'pages/home.html',
controller : 'mainController'
})
// route for the about page
.when('/about', {
templateUrl : 'pages/about.html',
controller : 'aboutController'
})
// route for the contact page
.when('/contact', {
templateUrl : 'pages/contact.html',
controller : 'contactController'
});
});
// create the controller and inject Angular's $scope
scotchApp.controller('mainController', function($scope) {
// create a message to display in our view
$scope.message = 'Everyone come and see how good I look!';
});
scotchApp.controller('aboutController', function($scope) {
$scope.message = 'Look! I am an about page.';
});
scotchApp.controller('contactController', function($scope) {
$scope.message = 'Contact us! JK. This is just a demo.';
});

さて、私たちは$ routeProviderを通して経路を定義しました。 設定することで、指定したルート、テンプレートファイル、またはコントローラを使用することができます。 このようにして、アプリケーションのすべての部分で角度コントローラと独自のビューが使用されます。

URLをクリーンアップする:angleは、デフォルトでURLにポンド記号を入れます。 これを避けるには、$ historyProviderを使用してHTML履歴APIを有効にする必要があります。ハッシュが削除され、素敵なURLが作成されます。 私たちのホームページでは、home.htmlファイルがプルされます。Aboutと連絡先のページでは、関連するファイルがプルされます。アプリケーションを見てナビゲーションをクリックすると、内容が変更されます。

このチュートリアルを完了するには、挿入するページを定義するだけで、それぞれのページに関連付けられたコントローラからのメッセージを表示させることもできます。


<!- home.html ->
<div class="jumbotron text-center">
<h1>Home Page</h1>
<p>{{ message }}</p>
</div>
<!- about.html ->
<div class="jumbotron text-center">
<h1>About Page</h1>
<p>{{ message }}</p>
</div>
<!- contact.html ->
<div class="jumbotron text-center">
<h1>Contact Page</h1>
<p>{{ message }}</p>
</div>

ローカルルート:角度ルートは、環境を設定する場合にのみ機能します。 http:// localhostまたは何らかのタイプの環境を使用していることを確認する必要があります。それ以外の場合は、ドメイン間の要求でHTTPがサポートされているはずです。

角張ったアプリのアニメーション

すべてのルートを完了したら、サイトの再生とアニメーションを開始することができます。これを行うには、 angelで提供されるngAnimateモジュールを使用する必要があります。次に、CSSアニメーションを使用してアニメーションを切り替えます。それを見る。
単一のページアプリでのSEO

理想的には、このテクニックは、ユーザーがログインしているアプリケーションで使用される可能性があります。 もちろん、特定のユーザーのプライベートページを検索エンジンでインデックスに登録する必要はありません。たとえば、リーダーアカウント、Facebookログインページ、またはブログCMSページのインデックスが作成されないようにします。

アプリケーションのSEOを行う場合、jsを使用してページを構築するアプリケーション/サイトでSEOを動作させるにはどうすればよいでしょうか?コンテンツはブラウザによって動的に構築されるため、見えない。

あなたのアプリをSEOに親しみやすくする

JSシングルページアプリケーションの作成SEOに優しい技術を作るには、定期的なメンテナンスが必要です。公式のGoogleの推奨事項によれば、HTMLスナップショットを作成する必要があります。

クローラはフレンドリーなURL(http://scotch.io/seofriendly#key=value)を見つけます。
次に、クローラーは、サーバーがURLの内容を要求するように(特別に変更された方法で)
Webサーバーは、HTMLスナップショットを使用してコンテンツを返します。
HTMLスナップショットはクローラによって処理されます
検索結果に元のURLが表示されます。

このプロセスの詳細については、GoogleのAJAXクローラとHTMLスナップショット作成ガイドを参照してください。


1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...
      この投稿は審査処理中  | 元のサイトへ