我怎样才能在 vue js 中显示以逗号分隔的清单中的内容?

How can I able to display content in inventory seperated by commas in vue js?

我的json数据是

{ "status": true,
  "data": {
    "pid": 9,
    "Name": "Asok",
    "services": "3, 1, 2, 4, 5, 6",
    "inventory": ["specs", " Testing", "Lens", "Doctors", "Surgeon", "Medicines"]
  }
}

现在我用html作为

<div v-for="inv in data.inventory">{{inv}}</div>

当我这样做的时候,数据是向下打印的。我需要在一行中以逗号分隔显示数据吗??

你的标签的 display 必须是合适的,因为 div 它是一个 block,意味着它将获得整个行的宽度。所以下一个元素将放在它下面。您可以使用 span 标签代替 div 来默认设置值。或者您需要更改当前 div 元素的 display 属性。

<div>
   <span v-for="inv in data.inventory">{{inv}}</span>
</div>

让我用 jQuery 来展示例子,而不是 vue.js,但逻辑是一样的,它不是 vue 或 jquery-s 的问题。

const obj = { "status": true,
  "data": {
    "pid": 9,
    "Name": "Asok",
    "services": "3, 1, 2, 4, 5, 6",
    "inventory": ["specs", " Testing", "Lens", "Doctors", "Surgeon", "Medicines"]
  }
};

let str = '';

obj.data.inventory.forEach(ivt => {
  str += `<div>${ivt}</div>`;
});

$('#myFirstDiv').html(str);
str = '';

obj.data.inventory.forEach(ivt => {
  str += `<span>${ivt}</span>`;
});

$('#mySecondDiv').html(str);
str = '';

obj.data.inventory.forEach(ivt => {
  str += `<div class='inline-block'>${ivt}</div>`;
});

$('#myThirdDiv').html(str);
div.inline-block {
   display: inline-block
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
With divs
<div id='myFirstDiv'>

</div>
<br/>
With spans
<div id='mySecondDiv'>

</div>
<br/>
With changed display
<div id='myThirdDiv'>

</div>

您可以使用 span 而不是像

这样的 div 来做到这一点
<span v-for="inv in data.inventory">{{inv}}, </span>

不幸的是,您将以逗号结束:-/

也许这是您应该进行一些 JS 预处理并保持模板简单的情况之一,例如:

<div>{{data.inventory.join(', ')}}</div>

这将毫不费力地解决尾随逗号问题。

div 是块元素,因此使用内联元素,如 span。至于逗号,在除最后一个元素外的所有元素上加上,例如:

<div>
   <span v-for="inv, index in data.inventory" v-if="index != data.inventory.length - 1">{{inv}},</span>
   <span v-else>{{inv}}</span>
</div>

Working fiddle