JSFiddle - React, Tailwind, and code Playground

by Ashley li

HTML

<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/css/bootstrap.min.css">
<!-- Insert -->
<div ng-app="app">
<div class="well span4" style="margin-top:20px;"  >
    <div class="alert alert-info">
      <select ng-model="ddlTime" ng-controller="PhaseCtrl" ng-options="time.name as ( time.name + '  [' + time.startyear +'~' + time.endyear +  ']' ) for time in period"> 
            <!--as for 表達式中用'(' ')'會出錯 -->
            <option value="">---請選擇年代---</option>
        </select>
       <!-- 把名稱及年齡組合成字串來當做下拉選單的選項內容
        但當某個選項被選到之後,因為被指定的 select 是  time.name 而不是原本的 period 物件喔
        {{ddlTime.name + '  ' +ddlTime.startyear + ' - ' + ddlTime.endyear }}-->
        <form ng-controller="PeopleCtrl">
        <label ng-model="addperiod" ng-show="ddlTime!=Null">{{ddlTime.name}}</label>
        <label class="control-label"for="nameEn" >Name :</label>
        <input id="addname" ng-model="addname"  placeholder="音樂家"  />
        <label class="control-label" for="chName">chName :</label><input id="addchName" ng-model="addchName"  placeholder="音樂家譯名" />
        <label class="control-label" for="age">age :</label><input type="number" id="addage" ng-model="addage" placeholder="年齡" />
        <label class="control-label" for="birth">birth :</label><input id="addbirth" ng-model="addbirth" placeholder="出生" />
        <label class="control-label" for="die">die :</label><input id="adddie" ng-model="adddie" placeholder="死亡" />
            <input type="submit" class="btn" ng-submit="add()" value="新增"/>
        </form>
    </div>
</div> 
   

      <div class="well span6" style="margin-top:20px;"  ng-controller="PhaseCtrl">
       <h2 ng-repeat-start="time in period" style="margin-bottom:20px;">{{time.name}} <h3>{{time.startyear}} - {{time.endyear}}</h3></h2>
       
        <div ng-controller="PeopleCtrl" >
                <div class="alert alert-info" ng-repeat-start="musician in musicians  | filter:time.name" ng-hide="musician.editing">
      ...

JavaScript

var app = angular.module('app', [])
 app.controller('PhaseCtrl',function($scope){
  $scope.period = [
                  { name: '巴洛克時期', startyear: 1600, endyear: 1750 },
                  { name: '古典時期', startyear: 1730, endyear: 1820 },
                  { name: '浪漫時期', startyear: 1830, endyear: 1850 },
                  ];
     
 });

      app.controller('PeopleCtrl',function($scope){
      $scope.musicians=[
      {name:'Johann Sebastian Bach' , chName:'巴赫',period:'巴洛克時期',birthday:'1685-03-21',die:'1750-07-28',age:65},
       {name:'Antonio Lucio Vivaldi' , chName:'韋瓦第',period:'巴洛克時期',birthday:'1678-03-04',die:'1741-07-28',age:63},
      
        {name:'Wolfgang Amadeus Mozart' , chName:'莫札特',period:'古典時期',birthday:'1756-01-27',die:'1791-12-05',age:35},
       {name:'Ludwig van Beethoven' , chName:'貝多芬',period:'古典時期',birthday:'1770-12-16',die:'1827-03-26',age:57},
      
       {name:'Ludwig van Beethoven' , chName:'蕭邦',period:'浪漫時期',birthday:'1810-03-01',die:'1849-10-17',age:39},
       {name:'Giuseppe Fortunino Francesco Verdi',chName:'威爾第',period:'浪漫時期',birthday:'1813-10-10',die:'1901-01-27',age:88},
  ];
             $scope.add = function () {
                $scope.musicians.push({
                    name: $scope.addname,
                    chName: $scope.addchName,
                    age: $scope.addage,
                    birthday: $scope.addbirth,
                    die: $scope.adddie,
                    period:$scope.addperiod
                });
                $scope.addname = "";
                $scope.addchName = "";
                $scope.addage = "";
                $scope.addbirth = "";
                $scope.adddie = "";
                $scope.addperiod = "";
            };
     
     $scope.remove=function(index){
     $scope.musicians.splice(index,1);
     };

    
     
      });