使用vue nuxt

时间:2018-06-07 01:09:11

标签: asynchronous vue.js vue-component nuxt.js

我有一个vue-nuxt组件,并且想要使用asyncData API调用加载的数据初始设置组件的data-(property)。

data () {
  return {
    selected_company: this.contracts.company1.id *--> this gives me an undefined value*
  }
},
async asyncData({ app }) {
  const contracts = await app.$axios.$get("/companies/contracts")
return {contracts}

在我的模板中,我可以使用以下代码访问数据(因此数据已成功加载):

{{this.contracts.company1}}

因为我在"合同中有多个条目"我想显示它们(例如在下拉列表中)并使用v-model捕获选定的公司。出于某些原因,我需要为我的" selected_company" -attribute设置初始值。 这是一个简化的示例(我的数据结构更复杂,例如嵌套元素)。

如何设置数据属性的初始值,例如" selected_company"根据asyncData调用的结果? 我是否会错过一些重要的内容或者没有简单的方法呢?

非常感谢任何帮助!提前谢谢你

1 个答案:

答案 0 :(得分:1)

您可以尝试在创建的方法中添加初始值,而不是在data属性中执行初始值。

created () {
  this.selected_company = this.contracts.company1.id
}

或者如果它仍然无效,请尝试将其添加到您的监视属性中。

watch: {
  contracts: {
    handler (val) {
       this.selected_company = val.company1.id
    },
    deep: true
  }
}