| | |
| | | <template> |
| | | <li> |
| | | <h2>{{ friend.name }}</h2> |
| | | <h2>{{ name }} {{ friendIsFavorite ? '(Favorite)' : '' }}</h2> |
| | | <button @click="toggleDetails"> |
| | | {{ detailsAreVisible ? 'Hide' : 'Show' }} Details |
| | | </button> |
| | | |
| | | <button @click="toggleFavorite"> |
| | | Toggle favorite |
| | | </button> |
| | | <ul v-if="detailsAreVisible"> |
| | | <li><strong>Phone:</strong> {{ friend.phone }}</li> |
| | | <li><strong>Email:</strong> {{ friend.email }}</li> |
| | | <li><strong>Phone:</strong> {{ phoneNumber }}</li> |
| | | <li><strong>Email:</strong> {{ emailAddress }}</li> |
| | | </ul> |
| | | </li> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | // props: [ |
| | | // 'name', |
| | | // 'phoneNumber', |
| | | // 'emailAddress', |
| | | // 'isFavorite' |
| | | // ], |
| | | props: { |
| | | name: { |
| | | title: String, |
| | | required: true |
| | | }, |
| | | phoneNumber: { |
| | | title: String, |
| | | required: true |
| | | }, |
| | | emailAddress: { |
| | | title: String, |
| | | required: true |
| | | }, |
| | | isFavorite: { |
| | | title: Boolean, |
| | | required: false, |
| | | default: false, |
| | | // validator: function (value) { |
| | | // return value === '1' || value === '0'; |
| | | // } |
| | | }, |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | detailsAreVisible: false, |
| | | friend: { |
| | | id: "manuel", |
| | | name: "Manuel Lorenz", |
| | | phone: "01234 5678 991", |
| | | email: "manuel@localhost.com", |
| | | } |
| | | friendIsFavorite: this.isFavorite, |
| | | } |
| | | }, |
| | | methods: { |
| | | toggleDetails() { |
| | | this.detailsAreVisible = !this.detailsAreVisible; |
| | | }, |
| | | toggleFavorite() { |
| | | this.friendIsFavorite = !this.friendIsFavorite; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |