Javascript 带空格的对象键
Javascript object keys with spaces
我正在使用 vue.js 库,我正在尝试更改位于此处的网格组件示例:http://vuejs.org/examples/grid-component.html
当我向其中一个列名称添加 space 时,排序中断。看这里:http://jsfiddle.net/greene48/9d1f0858/
列名称通过 sortBy 函数传递,该函数将 sortKey 变量更新为列名称,并将适当的 sortOrders 键切换为 -1 或 1。
sortBy: function (key) {
this.sortKey = key
this.sortOrders[key] = this.sortOrders[key] * -1
}
有谁知道为什么这不起作用?当我检查 sortKey 和 sortOrders[key] 的值时,它们似乎正在正确更新。我认为这一定与无法在内置 Vue.js orderBy 过滤器中使用 space 有关。所以它必须在这里中断:
<tr v-for="entry in data | filterBy filterKey | orderBy sortKey sortOrders[sortKey]">
<td v-for="key in columns">
{{entry[key]}}
</td>
</tr>
但是我在 Vue.js 文档中没有看到任何关于如何解决这个问题的内容。有人有什么想法吗?
我建议不要让 属性 名称取决于您希望它们在前端的显示方式。
使用不会像我在评论中建议的那样导致这些问题的名称。
您将这些名称映射到输出值的想法听起来很合理。
您甚至可以深入研究 in this thread 中描述的方法。虽然这已经再次造成限制。
一个简单的解决方法是将键 power value
替换为 power_value
,然后在使用纯 javascript 的 Vue 渲染后手动更改 header 像这样
document.querySelectorAll('#demo thead th')[1].textContent = 'Power value';
这里正在工作jsfiddle
您应该用方括号将 sortKey
括起来,
orderBy [sortKey] sortOrders[sortKey]
http://jsfiddle.net/9d1f0858/2/
不过,我同意上面所说的避免使用 属性 带空格的名称。
我正在使用 vue.js 库,我正在尝试更改位于此处的网格组件示例:http://vuejs.org/examples/grid-component.html
当我向其中一个列名称添加 space 时,排序中断。看这里:http://jsfiddle.net/greene48/9d1f0858/
列名称通过 sortBy 函数传递,该函数将 sortKey 变量更新为列名称,并将适当的 sortOrders 键切换为 -1 或 1。
sortBy: function (key) {
this.sortKey = key
this.sortOrders[key] = this.sortOrders[key] * -1
}
有谁知道为什么这不起作用?当我检查 sortKey 和 sortOrders[key] 的值时,它们似乎正在正确更新。我认为这一定与无法在内置 Vue.js orderBy 过滤器中使用 space 有关。所以它必须在这里中断:
<tr v-for="entry in data | filterBy filterKey | orderBy sortKey sortOrders[sortKey]">
<td v-for="key in columns">
{{entry[key]}}
</td>
</tr>
但是我在 Vue.js 文档中没有看到任何关于如何解决这个问题的内容。有人有什么想法吗?
我建议不要让 属性 名称取决于您希望它们在前端的显示方式。
使用不会像我在评论中建议的那样导致这些问题的名称。
您将这些名称映射到输出值的想法听起来很合理。
您甚至可以深入研究 in this thread 中描述的方法。虽然这已经再次造成限制。
一个简单的解决方法是将键 power value
替换为 power_value
,然后在使用纯 javascript 的 Vue 渲染后手动更改 header 像这样
document.querySelectorAll('#demo thead th')[1].textContent = 'Power value';
这里正在工作jsfiddle
您应该用方括号将 sortKey
括起来,
orderBy [sortKey] sortOrders[sortKey]
http://jsfiddle.net/9d1f0858/2/
不过,我同意上面所说的避免使用 属性 带空格的名称。