ссылка на маршрутизатор с выбранным значением раскрывающегося списка - PullRequest
0 голосов
/ 11 сентября 2018

Я работаю над расширением Chrome, и у меня есть выпадающее меню на двух разных экранах.Я использую router-link для передачи правильного параметра между двумя окнами, но у меня проблема с выпадающим меню.Он всегда выбирает первое значение, несмотря на отображение правильных данных на экране.

settings.vue

<router-link :to="{ name: 'SummaryWId', params: { accountid: chosenAccount.apikey}}" text="summary"><span style="cursor: pointer;" title="Summary"></span></router-link>

accountSummary.vue

<router-link :to="{ name: 'SettingsWId', params: { accountid: chosenAccount.apikey}}" text="settings"><span style="cursor: pointer;" title="Settings"></span></router-link>

Я включаю файлы выпадающего меню на страницах выше.Единственное различие между ними заключается в названии, а name:"SummaryWId" - это name:"SettingsWId" в другом файле.Мой следующий шаг - объединить два утопленных файла в один.

accountDropDown.vue

<template>
    <span>
        <select @change="followLink" >
            <option
                v-for="account in allNamedAccounts"
                v-if="account.network_name != undefined"
                :value="account.apikey"
                v-text="account.network_name">
            </option>
        </select>
    </span>
</template>

<script>
import {dataGetter} from "@/datagetter/dataGetter";

export default{
    name:"accountDropDown",
    mixins:[dataGetter],
    data(){
        return {};
    },
    methods:{
        followLink(e){
            this.$router.push(
                {
                    name:"SummaryWId",
                    params:{
                        accountid:e.target.value
                    }
                }
            );
            this.$emit('linkfollow');
        },
    },
}
</script>

dataGetter.js

methods:{
    allAccounts(){
        return this.$store.getters.accounts;
    },  
    firstAccount(){
        let key = Object.keys(this.allAccounts())[0];
        return this.allAccounts()[key];
    },  

},  
computed:{
    chosenAccount(){
        if( this.accountId() != undefined ){
            let accounts = this.allAccounts();
            return this.allAccounts()[this.accountId()];
        }else{
            return this.firstAccount();
        }   
    },  
    allNamedAccounts(){
        let accounts = this.allAccounts();
        let clean = []; 
        for(let account in accounts){
            if( accounts[account] != undefined){
                clean.push(accounts[account]);
            }   
        }   
        return clean;
    },  
},

Похоже, я что-то не так делаю в файле dataGetter.Я пытался работать с порядком в массиве, но это не решило проблему.

Я действительно не уверен, что мне не хватает, и любая помощь будет оценена.

...