vuejs动态绑定项目

时间:2018-04-08 08:54:15

标签: vue.js

我已经得到了我想要绑定到数组的基本选择。我使用vuetify,但这个问题很普遍。

<v-select
v-bind:items="physicianListSpeciality"
>
</v-select>

现在我想对许多数组使用相同的选择,取决于可能是医生,护士等的offer.person值。

data: {
offer.person: "physician" //or offer.person: "nurse"
}

例如physician我要绑定physicianListSpeciality 对于nurse,我想绑定nurseListSpeciality, 等

我尝试做类似的事情:

<v-select
v-bind:items="`${offer.person}`ListSpeciality"
>
</v-select>

v-bind:items="[offer.person +'ListSpeciality']"

它们似乎都不适合我。 如何更正我的代码才能使其工作?我应该使用某种计算方法还是有另一种方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

嗯,这取决于你的范围。 如果您在窗口范围内工作,则只需使用window[offer.person + 'ListSpeciality']调用var。

如果我们在组件范围内,并且getters / data“nurseListSpeciality”存在,那么您可以从this上下文中调用它,如下所示:this[offer.person + 'ListSpeciality']其中offer.person将是'护士”。

另一种选择是做类似的事情: 以您的项目数据为例

data() {
  return {
    jobs: {
      nurse: [
        'nurse item A',
        'nurse item B',
        'nurse item C',
      ],
      physician: [
        'physician item A',
        'physician item B',
        'physician item C',
      ],
    },
  };
}

然后你可以得到这样的项目:

// offer.person = 'nurse';
<v-select
  :items="jobs[offer.person]"
>
</v-select>