AngularJSのngRouteを使い、画面遷移とともに値を受け渡すサンプル

AngularJSのngRouteを使い、画面遷移とともに値を受け渡すサンプルの画像

AngularJSを最近使うようになってきて楽しいです。
このngRouteの使い方は、ng-repeatしているリストのクリックイベントでよく使うやり方です。
自身の記憶の整理のため記事にしておきます。

基本サンプルコード

index.html

<!DOCTYPE HTML>
<html ng-app="myApp" lang="ja">
<head>
  <meta charset="utf-8">
  <title>My Angular App</title>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular-route.js"></script>
  <script>
  var app = angular.module('myApp', ['ngRoute']);
  app.config(['$routeProvider', function($routeProvider) {
    $routeProvider
    .when('/foo/', {templateUrl: 'foo.html' }) // templateUrlでテンプレートとなるファイルとテンプレ名を指定
    .when('/bar/', {templateUrl: 'bar.html' }) // 同様にテンプレ指定(ここでは遷移後)
    .otherwise({redirectTo: '/foo'}); // 初めに表示するテンプレ名
  }]);

  app.controller('MainController', ['$scope', '$location', function($scope, $location){
    $scope.click = function(value) {
      $scope.value = value;
      $location.path('/bar/'); // クリック後遷移するテンプレ指定
    };
  }]);
  </script>
</head>
<body ng-controller="MainController">
  <div ng-view></div>
</body>
</html>

foo.html

<div>
<input type="text" ng-model="value" />
<button ng-click="click(value)">クリック</button>
</div>

bar.html

<div>入力値:{{value}}</div>