首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加载ajax结果选择选项作为自动完成?

如何加载ajax结果选择选项作为自动完成?
EN

Stack Overflow用户
提问于 2017-10-14 19:00:51
回答 1查看 853关注 0票数 1

我正在创建一个应用程序的地方搜索使用谷歌地点API。

我的组件

代码语言:javascript
复制
<v-select
 label="Type your Address"
 autocomplete
 :async-loading="loading"
 cache-items
 :items="items"
 :search-input.sync="search"
 v-model="seachPlacesModel"
></v-select>

// Script

data () {
 return {
  searchPlacesModel: '',
  loading: false,
  items: [],
  search: null
 }
},
watch: {
 search (val) {
  val && this.searchPlaces(val)
 }
},
methods: {
 searchPlaces (input) {
  this.loading = true
 this.$http.post(googlePlaces + '?input=' + input + '&types=geocode&country=uk&key=' + googleKey + '')
  .then(response => {
    console.log(response.body.predictions)
    this.items = response.body.predictions
    console.log(this.items)
  }, error => {
    console.log(error)
  })
 }

现在什么起作用了?

Google在keyup上返回一个数组。我可以在控制台中看到结果。

什么不管用?

当我在this.items中修改结果时,它会给出这个错误。

void using observed data object as vnode data: ...... Always create fresh vnode data objects in each render!

EN

回答 1

Stack Overflow用户

发布于 2017-10-14 21:15:53

尝试使用不可变状态。为数组选择手表。您应该保存到this.items的链接。

代码语言:javascript
复制
this.items = response.body.predictions

上面的代码替换了指向数组的链接。

代码语言:javascript
复制
this.items.push(response.body.predictions)

如果要添加结果

代码语言:javascript
复制
this.items.splice(0, this.items.length)

如果你想清除

您应该在循环中替换未使用的值,同时保留到数组的当前链接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46748260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档