<!DOCTYPE html>
<html ng-app="myApp">

  <head>
    <!-- 見た目用にBootstrapを使う -->
    <link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    <!-- AngularJS 1.5を公式サイトから引っ張ってくる -->
    <script src="//code.angularjs.org/1.5.7/angular.min.js"></script>
    <!-- ↓↓↓自分で作ったJavaScriptはここから↓↓↓ -->
    <script src="app.js"></script>
  </head>

  <body class="container">
    <div ng-controller="AppController">
      <div>
        <h1>登録フォーム</h1>
        <form ng-submit="submit()">
          <div class="form-group">
            <label for="username">ユーザー名</label>
            <input type="text" class="form-control" id="username" placeholder="twitterのユーザー名を入力" ng-model="username">
          </div>
          <button type="submit" class="btn btn-primary">登録</button>
        </form>
      </div>
      <hr>
      <div>
        <h1>ユーザー一覧</h1>
        <span ng-if="users.length === 0">ユーザーが一人も登録されていません</span>
        <ul>
          <li style="padding: 5px" ng-repeat="user in users">
            <div>
              <a href="{{user.url}}" target="_blank">{{user.username}}</a>
              <button type="button" class="btn btn-xs btn-danger" ng-click="deleteUser($index)">x</button>
            </div>
          </li>
        </ul>
      </div>
    </div>
    
  </body>

</html>
angular.module('myApp', [])
  .controller('AppController', function($scope) {
    // 入力されたユーザー名を保持
    $scope.username = '';
    // ユーザー一覧(空の配列で初期化)
    $scope.users = [];
    // 登録を押されたときの関数
    $scope.submit = function() {
      // 空だったら何もしない
      if (!$scope.username) return;
      // 新しいユーザーをユーザー一覧に登録する
      $scope.users.push({
        username: $scope.username,
        url: '//twitter.com/' + $scope.username
      });
      // 登録完了したらINPUTを空にしておく
      $scope.username =  '';
    };
    // ユーザー一覧からユーザーを削除
    $scope.deleteUser = function(index) {
      $scope.users.splice(index, 1);
    };
  });
/* Styles go here */