2017-01-24 6 views
0

У меня есть связанный выбор для вложенного данных:Vue 2 v-модель данных не является обязательным и удаление свойства

<select class="form-control" v-model="user_profile.sport.sport_id"> 
     <option v-for="sport in sport_information.sports" :value="sport.sport_id">{{ sport.sport_name }}</option> 
    </select> 

Данные, полученные от вызова AJAX. В этом случае user_profile.sport.sport_id является:

{ "sport_id": 2, "name": "Baseball" } 

Но после загрузки страницы я теряю sport_id

{"name": "Baseball" } 

Я считаю, что это происходит потому, что значения параметра (sport_information.sports) также загружены с JSON. Поэтому, когда Vue пытается связать значение sport_id, для выбора не может быть значения, и оно удаляет свойство.

 this.$parent.callAPI('POST', '/Business/GetSportInformation.ashx', data).then(function (sResponse) { 
     self.sport_information = Object.assign({}, sResponse.data) 

И callAPI использует VUE-ресурсосберегающим:

export default { 
name: 'App', 
data: function() { 
    return { 
    section: 'Head', 
    version: '0.10.0', 
    callingAPI: false, 
    serverURI: 'http://mywebservice.net/API', 
    caller: this.$http 
    } 
}, 
methods: { 
    callAPI: function (method, url, data) { 
    this.callingAPI = true 
    url = this.serverURI + url // if no url is passed then inheret local server URI 
    return this.caller.post(url, data) 
    }, 

Как данные одна ручка связывание AJAX Sourced данных в выбирает?

+0

Как вы инициируете экземпляр vuejs? Знает ли он все свойства модели? –

+0

Да, он знает обо всех свойствах и спортивных по умолчанию: {"sport_id": 0, "name": ""} – Bryan

+0

Можете ли вы добавить некоторые примерные данные по адресу [http://www.mocky.io/] (http://www.mocky.io/) и пришлите мне ссылку? Затем я смогу создать демоверсию, чтобы увидеть проблему. – AWolf

ответ

0

Звонок API, заполняющий раскрывающийся список, будет отвечать после вызова API, который привязывает данные к выбору. Таким образом, данные привязываются к выбору без значений параметров, а свойство sport_id удаляется из объекта.

После того, как параметры выбора заполнены, если я изменяю значение выбора, свойство sport_id считывается объекту с текущим значением select.

Мне нужно было убедиться, что я заполняю выбор перед привязкой данных, чтобы страница правильно загружала форму.