angular.jsをチュートリアルから学ぶ step4 Two-way Data Binding
- 2013.10.26
 - javascript Prog
 - angular.js, javascript
 
今回のstep4ではDataBindingについてです。
セレクトボックスで選択した要素で並び替えるサンプルです。
step3との差分ソースコード
セレクトボックス部分
<select ng-model="orderProp">
  <option value="name">アルファベット順</option>
  <option value="age">新着順</option>
</select>
<ul class="phones">
  <li ng-repeat="phone in phones | filter:query | orderBy:orderProp">
    {{phone.name}}
    <p>{{phone.snippet}}</p>
  </li>
</ul>
リスト要素の中にorderBy要素が追加されています。
コントローラ内の追加部分 orderByの初期値設定
    $scope.orderProp = 'age';
セレクト要素内のng-modelでorderPropのデータ要素を変更して、
Phonesリストの中のorderByに渡してリストの再表示を行う形になります。
ソースコード全体
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>
<div ng-app="phonecatApp">
<div class="container" ng-controller="PhoneListCtrl">
<input ng-model="query">
<h3>Phone Gallery: {{query}}</h3>
<select ng-model="orderProp">
  <option value="name">アルファベット順</option>
  <option value="age">新着順</option>
</select>
<ul class="phones">
  <li ng-repeat="phone in phones | filter:query | orderBy:orderProp">
    {{phone.name}}
    <p>{{phone.snippet}}</p>
  </li>
</ul>
</div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
<script src="dist/js/bootstrap.min.js"></script>
<script>
var phonecatApp = angular.module('phonecatApp', []);
phonecatApp.controller('PhoneListCtrl', function PhoneListCtrl($scope) {
    $scope.phones = [
        {'name': 'Nexus S', 'snippet': 'Fast just got faster with Nexus S.', 'age': 1},
        {'name': 'Motorola XOOM with WiFi', 'snippet': 'The Next, Next Generation tablet.', 'age': 2},
        {'name': 'Motorola XOOM', 'snippet': 'The Next, Next Generation tablet.', 'age': 3},
        {'name': 'Motorola XOOM2', 'snippet': 'The Next, Next Generation tablet.', 'age': 4},
        {'name': 'Motorola XOOM4', 'snippet': 'The Next, Next Generation tablet.', 'age': 6},
        {'name': 'Motorola XOOM5', 'snippet': 'The Next, Next Generation tablet.', 'age': 7},
        {'name': 'Motorola XOOM3', 'snippet': 'The Next, Next Generation tablet.', 'age': 5},
    ];
    $scope.orderProp = 'age';
});
</script>
</body>
</html>
      - 
            前の記事
			  		
		    	        
	        angular.jsをチュートリアルから学ぶ step3 Filtering Repeaters 2013.10.26
 - 
            次の記事
			  		    	        
	        angular.jsをチュートリアルから学ぶ step5 XHRs & Dependency Injection 2013.10.28
 
コメントを投稿するにはログインしてください。