使用表达式时,VueJS 2组件支持不一致

时间:2017-01-24 02:30:36

标签: vuejs2 vue-component

我正在努力将一条信息传递给我的一个组件。

我正在尝试迭代数据列表,并将列表的最后一项的布尔值设置为true。我遇到了一个有趣的不一致,如果我在下面的代码中使用v-bind:isLast="index + 1 == tiers.length",它的计算结果为false,但如果我做v-bind:test="{index: index, tiersLength: tiers.length, bool: index + 1 == tiers.length}"并使用一个对象存储该信息而不是期望一个布尔值,那么bool键在对象中具有true值。

有谁知道这是为什么?而且,作为计算属性,这会更好吗?我真的不想将更多信息从层列表传递到组件中,因为我觉得该组件应该完全忽略层级列表。

<section id="classification-metadata-editor">
  <metadata-button-row
    v-for="(row,index) in tiers"
    v-bind:row="row"
    v-bind:index="index"
    v-bind:isLast="index + 1 == tiers.length"
    v-bind:test="{index: index, tiersLength: tiers.length, bool: index + 1 == tiers.length}">
  </metadata-button-row>
</section>

isLast: false
test: {index: 0, tiersLength: 1, bool: true}

我不太确定这是否打算,因为我觉得我做的事情比设置道具的意图要多一点,但我不太确定如何做到这一点。我一直在寻找类似的问题,但不太确定搜索的正确术语,所以如果在其他地方有这个问题我会道歉。

谢谢!

1 个答案:

答案 0 :(得分:0)

您不能像这样将对象分配给道具:

sed "/keyword_A/s/A5{ATTR}='[A-Z0-9]*'/A5{ATTR}='NEW'/gp" -n test.txt

您必须创建一个计算属性或方法来获取此对象,如下所示:

v-bind:test="{index: index, tiersLength: tiers.length, bool: index + 1 == tiers.length}">

并在模板中使用此方法:

methods: {
  getObject (index) {
  return {index: index, tiersLength: this.tiers.length, bool: index + 1 == this.tiers.length}
  }
}