_slug.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <template>
  2. <div class="md-layout md-alignment-center" style="margin: 5em 0">
  3. <!--Headline Markup-->
  4. <md-card class="md-layout-item md-size-75 md-small-size-80 md-xsmall-size-100">
  5. <md-card-media style="height: 300px" md-ratio="16:9">
  6. <img :src="headline.urlToImage" :alt="headline.title">
  7. </md-card-media>
  8. <md-card-header>
  9. <div class="md-title">
  10. <a :href="headline.url" target="_blank">{{ headline.title }}</a>
  11. </div>
  12. <div>
  13. {{ headline.source.name }}
  14. <md-icon>book</md-icon>
  15. </div>
  16. <span class="md-subhead">
  17. {{ headline.author }}
  18. <md-icon>face</md-icon>
  19. </span>
  20. </md-card-header>
  21. <md-card-content>{{ headline.content }}</md-card-content>
  22. </md-card>
  23. <!-- Back Button -->
  24. <md-button @click="$router.go(-1)" class="md-fixed md-fab-bottom-right md-fab md-primary">
  25. <md-icon>arrow_back</md-icon>
  26. </md-button>
  27. </div>
  28. </template>
  29. <script>
  30. export default {
  31. computed: {
  32. headline () {
  33. return this.$store.getters.headline
  34. }
  35. },
  36. async fetch ({ store, params }) {
  37. await store.dispatch('loadHeadline', params.slug)
  38. }
  39. }
  40. </script>