Я пытаюсь получить объект json из шаблона jquery, когда вызывается событие onclick для метода onclick="actionWidget(\'${JSON.stringify(msgItem)}\',\'${index}\')"
Клавиша elements
пуста, когда console.log(obj)
. Тем не менее, массив элементов шаблона не является пустым, и шаблон использует массив obj.elements
, но проходит через метод onclick="actionWidget(\'${JSON.stringify(msgItem)}\',\'${index}\')"
, передавая obj.elements
как пустой массив.
responseData :
{
"location":"ams",
"title":"salkas",
"elements":[ //<=======this elements key is empty when console.log
{"where":"saklsa","name":"xakax","actions":[{"title":"a123"]},
{"where":"saklsa","name":"xakax","actions":[{"title":"a123"]},
{"where":"saklsa","name":"xakax","actions":[{"title":"a123"]}
]
}
.js
success: function (responseData, status, xhrObject) {
var res = Object.assign({}, responseData);
res["elements"] = getResolveMeeting(res);
var dataHTML = $(getTemplate("meetingTemplate")).tmpl({
'tempdata': res
});
}
getResolveMeeting(obj){
var items = [];
for (i = 0; i < obj.elements.length; i++) {
var ele = Object.assign({}, obj.elements[i]);
// here cloning and restructuring `obj.elements` and adding one or more objects in `obj.elements`
}
return items; // here returning `obj.elements` as `items` array
}
getTemplate = function (type) {
var meetingTemplate = '<script id="message_tmpl" type="text/x-jquery-tmpl"> \
<div class="meetingWidget_Root"> \
<div class="meetingWidget_Box">\
{{each(key, msgItem) tempdata.elements}} \
<ul class="dropdown-contentWidgt rmpmW" style="list-style:none;">\
{{each(index, actionbtnli) msgItem.actions}} \
<li class="dropdown-item liUtternce" onclick="actionWidget(\'${JSON.stringify(msgItem)}\',\'${index}\')">${actionbtnli.title}</li>\
{{/each}}\
</ul>\
{{/each}}
return type;
}
actionWidget(obj, title){
// here getting empty `obj.elements` array <=========== getting `elements` key data in `obj` as an empty array
console.log(obj);
// {"location":"ams","title":"salkas","elements":[] } <====
}