处理 JavaScript 对象中的连字符
Dealing with Hyphens in a JavaScript Object
我正在为 .NET MVC5 应用程序使用开源网格库 (Nofactors-MVC-Grid),无论出于何种原因,渲染器将 C# 中的 snake_case 变量名转换为 [= 中的连字符17=].
document.addEventListener('rowclick', function (e) {
//Value in C# will be some_id
var some_id = e.detail.data.some-id; //debugger displays this
});
显然,这对 JS 来说是一个糟糕的命名约定,但我很好奇是否有另一种方法来捕获这个变量,而不必在后端重构我的命名约定。
您还可以使用方括号 getter ( [ ]
) 访问对象 属性。
在您的情况下,这可用于访问包含连字符的对象 属性。
document.addEventListener('rowclick', function (e) {
//Value in C# will be some_id
var some_id = e.detail.data['some-id']; //debugger displays this
});
您也可以使用相同的 getter 来获得动态 属性
document.addEventListener('rowclick', function (e) {
//Value in C# will be some_id
let key = 'some-id';
var some_id = e.detail.data[key]; //debugger displays this
});
我正在为 .NET MVC5 应用程序使用开源网格库 (Nofactors-MVC-Grid),无论出于何种原因,渲染器将 C# 中的 snake_case 变量名转换为 [= 中的连字符17=].
document.addEventListener('rowclick', function (e) {
//Value in C# will be some_id
var some_id = e.detail.data.some-id; //debugger displays this
});
显然,这对 JS 来说是一个糟糕的命名约定,但我很好奇是否有另一种方法来捕获这个变量,而不必在后端重构我的命名约定。
您还可以使用方括号 getter ( [ ]
) 访问对象 属性。
在您的情况下,这可用于访问包含连字符的对象 属性。
document.addEventListener('rowclick', function (e) {
//Value in C# will be some_id
var some_id = e.detail.data['some-id']; //debugger displays this
});
您也可以使用相同的 getter 来获得动态 属性
document.addEventListener('rowclick', function (e) {
//Value in C# will be some_id
let key = 'some-id';
var some_id = e.detail.data[key]; //debugger displays this
});