Работа с дефисами в JavaScript объекте - PullRequest
0 голосов
/ 29 января 2020

Я использую библиотеку сетки с открытым исходным кодом (Nonfactors- MVC -Grid) для приложения. NET MVC5, и по любой причине средство визуализации преобразует имена переменных snake_case в C# в дефисы в JavaScript.

document.addEventListener('rowclick', function (e) {
    //Value in C# will be some_id
    var some_id = e.detail.data.some-id; //debugger displays this
});

Очевидно, что это ужасное соглашение об именах для JS, но мне любопытно, есть ли альтернативный способ перехватить эту переменную без необходимости рефакторинга моих соглашений об именах в серверной части.

1 Ответ

4 голосов
/ 29 января 2020

Вы также можете получить доступ к свойству объекта с помощью метода получения скобок ([ ]).
Это можно использовать в вашем случае для доступа к свойству объекта, содержащему дефисы.

document.addEventListener('rowclick', function (e) {
    //Value in C# will be some_id
    var some_id = e.detail.data['some-id']; //debugger displays this
});

Вы также можете использовать тот же метод получения динамического c свойства

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
});
...