Шаблон jQuery не передает данные json из шаблона по клику - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь получить объект 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":[] } <====
    }
...