@dauren101
C++, Java, Python, PHP developer

Добавлении новой строки Vue.js и вставка индекса (номера строки) по умолчанию?

<div id="app">
  <h1>Add user</h1>
  <div v-for="(user, index) in users">
    <select v-model="user.name">
      <option value="">Выбрать</option>
      <option v-for="o in getOptions(index)" :value="o.value" v-text="o.label"></option>
    </select>
    <input v-model="user.procent">

    <button @click="deleteUser(index)">
      delete
    </button>
  </div>

  <button @click="addUser" :disabled="users.length >= options.length">
    New User
  </button>

  <pre>{{ users }}</pre>
  <pre>{{ percentTotal }}</pre>
</div>


new Vue({
  el: '#app',
  data: {
    users: [{ name: '', procent: '' }],
    options: [
      { label: 'Иванов', value: 'ivanov' },
      { label: 'Петров', value: 'petrov' },
      { label: 'Титарев', value: 'titarev' },
    ]
  },
  methods: {
    getOptions(index) {
      return this.options.filter(o => this.users.every((u, i) => u.name !== o.value || i === index));
    },
    addUser() {
      this.users.push({ name: '',procent:'' });
    },
    deleteUser(index) {
      this.users.splice(index, 1);
      if (this.users.length === 0) {
        this.addUser();
      }
    },
  },
  computed: {
    percentTotal() {
      return this.users.reduce((acc, user) => acc + parseInt(user.procent, 10), 0)
    },
 	},
});

Как при добавлении новой строки в input по умолчанию вставлять номер индекса?
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
addUser() {
    this.users.push({
        name: '',
        procent: this.users.length,
    });
},
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@grinat
Например открыть гугл, узнать что push возвращает новую длину массива, вычесть оттуда единицу и хоба, у тебя есть то шо нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
MXP
от 120 000 до 140 000 руб.
Страховой Кабинет Нижний Новгород
от 60 000 до 90 000 руб.
Posh Space Москва
от 160 000 до 180 000 руб.
27 июн. 2019, в 01:26
50000 руб./за проект
27 июн. 2019, в 00:27
250000 руб./за проект