получить доступ к вложенному объекту в цикле v-for - PullRequest
0 голосов
/ 21 ноября 2018

Я бы хотел получить доступ к «новейшему» объекту массива вложенных объектов внутри другого массива объектов в Vue.js.Пожалуйста, посмотрите пример ниже.

Пример объекта elements:

[
  {
    'name': 'foo',
    'content': [
      {
        title: 'bar'
      }
    ]
  },
  {
    'name': 'hello world',
    'content': [
      {
        'title': 'this is a test'
      },
      {
        'title': 'this another test'
      }
    ]
  }
]

Упрощенный код Vue:

<div v-for="{ element, index } in elements" :key="index">
  <h1>{{ element.name }}</h1>
  <p>Latest content: {{ element.content[element.content.length - 1].title }}</p>
</div>

Почему это не работает?Вью говорит, что element.content is undefined.

1 Ответ

0 голосов
/ 21 ноября 2018

Удалить {} из v-for="{ element, index } in elements" и заменить их ()

Vue.config.devtools = false;
Vue.config.productionTip = false;

new Vue({
  el: '#app',

  data() {
    return {
      elements: [{
          'name': 'foo',
          'content': [{
            title: 'bar'
          }]
        },
        {
          'name': 'hello world',
          'content': [{
              'title': 'this is a test'
            },
            {
              'title': 'this another test'
            }
          ]
        }
      ]
    }
  }
});
<link type="text/css" rel="stylesheet" href="//unpkg.com/bootstrap/dist/css/bootstrap.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>


<div id="app" class="container">
  <div v-for="( element, index ) in elements" :key="index">
    <h1>{{ element.name }}</h1>
    <p>Latest content: {{ element.content[element.content.length - 1].title }}</p>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...