从字符串值映射字段

时间:2018-04-15 10:13:51

标签: javascript vue.js

我有一个奇怪的用例,用于映射对象的字段。 FWIW,我对数据(v-for

使用Vue.js

例如,

<div> {{ item['foo'] }} </div>效果很好✅

<div> {{ item['foo.bar'] }} </div>什么都不渲染❌

<div> {{ item['foo.bar[0].baz'] }} </div>什么都不渲染❌

我尝试使用正则表达式进行转换

<div> {{ 'item[foo.bar]'.match(/([\w\.]+)/g).join('.') }} </div>刚刚渲染了字符串。

如何正确执行以下操作,{{ item['foo.bar'] }}{{ item.foo.bar'] }}

的工作方式相同

1 个答案:

答案 0 :(得分:0)

我想通了,效果很好

我的对象如下:

{ foo: { bar: 23 } }

在我的渲染中:

<div> {{ formatResult(item, 'foo.bar') }} </div>

使用方法执行以下操作:

formatResults(item, fields){
    return fields.split(".").reduce((a, b) => a[b], item)
    // this returns 23
}