javascript - VueJS 根据条件将自定义指令绑定到循环组件
问题描述
假设我有一个这样的列表:
[{name: "test-a", directive: "v-testa"}, {name: "test-b", directive: "v-testb"}, {name: "test-c", directive: "v-testc"}]
我将遍历这个并想要这样的结果。
<ul>
<li v-testa>test-a</li>
<li v-testb>test-b</li>
<li v-testc>test-c</li>
</ul>
如果我做这样愚蠢的事情,它就行不通了:)
<ul>
<li v-for="item in list" item.directive>{{item.name}}</li>
</ul>
我怎样才能达到预期的效果?
解决方案
您可以这样做,但需要使用不同的v-bind
语法。
您传递一个对象,其键是 HTML 属性名称。
您可以在运行时使用Computed property names
对象初始化生成对象
尝试这个
<ul>
<li v-for="item in list" v-bind="{[`${item.directive}`]: ''}">{{item.name}}</li>
</ul>
推荐阅读
- python - 提取范围并将列表发送到整数 01054 Python
- android - 我正在创建一个像 Uber 这样的应用程序,但它突然崩溃并出现错误 Expected BEGIN_ARRAY 但在第 1 行第 1 列路径 $
- reactjs - React 和 Typescript:类型参数不可分配给“EventListenerOrEventListenerObject”类型的参数
- python - 使用索引和布尔选择后更新二维矩阵上的值
- dataframe - 如何使用pyspark在每次迭代中将数据框结果保存在具有不同名称的配置单元表中
- outlook - 文本框中的用户表单 vlookup
- javascript - 让命运之轮停在 Angular 4 中的特定位置
- angular - TypeError:_this.handler.handle 不是函数
- oracle - Oracle 无效标识符(带内连接)
- vsto - 如何检测用户何时在 Outlook VSTO 中选择 NEW 或 OPEN 邮件