Add some vue books/docs.
This commit is contained in:
59
vue/chapter5.html
Normal file
59
vue/chapter5.html
Normal file
@@ -0,0 +1,59 @@
|
||||
<html>
|
||||
<head>
|
||||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
|
||||
<title>The Elections</title>
|
||||
</head>
|
||||
<!-- listening for keyboard event -->
|
||||
<body @keyup.c="clear">
|
||||
<div class="container">
|
||||
<h1>People of Vue</h1>
|
||||
<ul class="list-group">
|
||||
<li v-for="candidate in candidates" class="list-group-item">
|
||||
{{candidate.name}} {{candidate.votes}}
|
||||
<!-- increase votes 'on:click'-->
|
||||
<button class="btn btn-default" @click="candidate.votes++">Vote</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<!-- display the name of the 'mayor' using a computed property-->
|
||||
<h2>Our mayor is {{mayor.name}}!</h2>
|
||||
|
||||
<pre>{{ $data | json }}</pre>
|
||||
<pre>{{ mayor | json }}</pre>
|
||||
</div>
|
||||
</body>
|
||||
<script src="http://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.js"></script>
|
||||
<script type="text/javascript">
|
||||
var vm = new Vue({
|
||||
el: 'body',
|
||||
data: {
|
||||
candidates: [
|
||||
{name: "Mr. Black", votes: 140},
|
||||
{name: "Mr. White", votes: 135},
|
||||
{name: "Mr. Pink", votes: 145},
|
||||
{name: "Mr. Brown", votes: 130},
|
||||
]
|
||||
},
|
||||
computed: {
|
||||
mayor: function () {
|
||||
//first we sort the array descending
|
||||
var candidatesSorted = this.candidates.sort(function (a, b) {
|
||||
return b.votes - a.votes;
|
||||
});
|
||||
//the mayor will be the first item
|
||||
return candidatesSorted[0];
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
//this method runs when the key 'c' is pressed
|
||||
clear: function () {
|
||||
//Turn votes of all candidate to 0 using map() function.
|
||||
this.candidates = this.candidates.map(function (candidate) {
|
||||
candidate.votes = 0;
|
||||
return candidate;
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
</html>
|
Reference in New Issue
Block a user