У меня есть объект JavaScript, который выглядит следующим образом. JavaScript: обновить значение объекта, извлекая имена переменных из строки
var myObj = [
{
"HOLIDAY": {
"Sun": "Date",
"Mon": "Date",
"Tue": "Date",
"Wed": "Date",
"Thr": "Date",
"Fri": "Date",
"Sat": "Date"
}
}
]
и у меня есть некоторые HTML-код, который выглядит как этот
<input data-event="change"
data-variable="myObj"
data-bind="[0]['HOLIDAY']['Sun']"
type="text">
На HTML я хранящегося какую переменную JavaScript, чтобы изменить, если я делать какие-либо изменения в этой области. Я написал код JavaScript, который выглядит так.
$(document).on('change', '[data-event= change]', function(){
//get-variable-name where to bind data
//Get object location inside the variable
var sVarName = $(this).data('variable');
var sObjLoca = $(this).data('bind');
eval(sVarName+sObjLoca +' = ' $(this).val());
});
Есть ли лучший подход к этой проблеме, в настоящее время я использую eval()
, которые я не хочу использовать, так как многие элементы будут иметь «изменить» событие и шоу «Eval» может повлиять на его производительность моего кода.
первым вы 2 атрибутов данных с таким же именем – madalinivascu
чана? должны ли быть изменения? '[data-bind = onchange]' ... должно быть '[data-bind = onChange]'? так много неполадок –
Первый '.on ('chang',' должен быть '.on ('change','. Second, * Есть ли лучший подход *, если речь идет об улучшениях/оптимизации, отправьте его на CodeReviews – Rajesh