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
コメントを投稿するにはログインしてください。