v-for в vue обновляет весь объект в массиве, хотя ключ был определен - PullRequest
0 голосов
/ 16 января 2019

это мой код:

      <v-container grid-list-md fluid-fix>
        <div v-for="(data ,c) in chapter.data" :key="c" class="my-3" style="border: 1px solid;">
          <v-layout row wrap px-3>
            <v-flex xs12 sm1>
              <v-text-field v-model="data.num" label="Chapter"></v-text-field>
            </v-flex>
            <v-flex xs12 sm3>
              <v-text-field v-model="data.name" label="name"></v-text-field>
            </v-flex>
            <v-flex xs12 sm8 d-flex>
              <v-text-field v-model="data.description" label="short info" style="width: 100%;"></v-text-field>
              <div>
                <v-btn class="d-inline-flex servers--btn" color="success" @click="addServer(c)">add server</v-btn>
              </div> 
            </v-flex>
          </v-layout>

          <v-container grid-list-md fluid-fix>
            <v-layout wrap v-for="(server ,s) in data.servers" :key="s">
            <v-flex sm12>
              <div class="d-inline-flex">
                <v-autocomplete
                :items="data.serverlist"
                v-model="server.server_id"
                @input="serverChange(data)"
                label="Server"
              ></v-autocomplete>
              </div>
              <div class="d-inline-flex text-xs-right pr-1">
                <v-btn color="orange" class="white--text servers--btn" @click="demo_edit(c,s,server.links)">demo and Edit</v-btn>
              </div>
              <div class="d-inline-flex text-xs-right pr-1" style="float: right;">
                <v-btn color="red" class="white--text servers--btn" @click="delSvOnChap(c,s)">Delete Server</v-btn>
              </div>
            </v-flex>

            <v-flex sm12>
              <v-textarea
                v-model="server.links"
                label="box image"
              ></v-textarea>
            </v-flex>
            </v-layout>
          </v-container>
serverChange(data){
  data.serverlist.forEach(obj => {
    if(_.find(data.servers,{server_id: obj.value})){
      obj.disabled = true
    }else{
      obj.disabled = false
    }
  });

},

serverChange в методах я хочу, чтобы обновление было отключено в ключе, но все объекты в массиве обновлены

когда я регистрирую функцию serverChange, я вижу только один возвращаемый объект, и это то, чего я жду, но когда я отключу этот объект, vue обновит весь объект в массиве

Мне нужно решение этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...