javascript - TypeError: Cannot read property 'winningName' of undefined -


in winningname method passed winningname value following:

doctemplateeditor({winningname:"http://localhost:3000/assets/js/actualairings.json"},'','', ''); 

but getting following error:

c:/users/206546364/desktop/8-20-test/webcomponent/src/main/webapp/app/components/swimming/    log: 'doctemplateeditor------????'     chrome 60.0.3112 (windows 10 0.0.0) jasmine unit tests: finance-dashboard-manage-documents doctemplateeditor failed [0]     typeerror: cannot read property 'winningname' of undefined 

can 1 guide me or me how fix error.

the test spec follows:

    it('doctemplateeditor', (done) => {          console.log("doctemplateeditor------????");         let callfirsttime : boolean = true;         let url=          spyon(dashboardcontractcomponent.financialdocuments.sportsservice,'getresponse').and.             callfake(() => {                      if(callfirsttime){                         callfirsttime = false; // invoked detectchanges()                          return observable.of([{                             "winningid": "100",                             "winningname": "http://localhost:3000/assets/js/actualairings.json",                             "winningtype": "title",                             "winningdata": "ywzjyxjlz2vyamh2dmfyzwdoynzi",                             "notes": "",                             "notesid": "100",                             "elfdocid": "100",                             "url": "http://localhost:3000/upload",                             "date": "06/27/2017",                             "addedbyname": "kamal",                             "userid": "206509786",                             "operationtype": "create"                           }, {                             "winningid": "101",                             "winningname": "uploadtest4.txt",                             "winningtype": "title",                             "winningdata": "manish",                             "notes": "",                             "notesid": "101",                             "elfdocid": "101",                             "url": "http://localhost:3000/upload",                             "date": "06/27/2017",                             "addedbyname": "kamal",                             "userid": "206509786",                             "operationtype": "create"                           }]                     );                     }              });               spyon(dashboardcontractcomponent.financialdocuments.gridkendo,'enablesavedocument').and.returnvalue(null);              dashboardcontractcomponent.financialdocuments.fileselect = "text.txt";             // dashboardcontractcomponent.financialdocuments.uploadfile('', '');             dashboardcontractcomponent.financialdocuments.doctemplateeditor({winningname:"http://localhost:3000/assets/js/actualairings.json"},'','', '');             //let winningname="http://localhost:3000/assets/js/actualairings.json";               fixture.whenstable().then(() => {            done();            expect(dashboardcontractcomponent.financialdocuments._datasource._data.length).toequal(3);         });      });     }); 

function:

 public doctemplateeditor(container: any, options: any, that: any,selectedoptions) {     $(".displayinlineblock").removeclass("winningicondiplay");     let docimageicon = "winningicon";  let extensiontype = {   ".pdf": "pdficon",   ".ppt": "ppticon",   ".xls": "xlsicon",   ".xlsx": "xlsicon",   ".doc": "winningicon",   ".docx": "winningicon",   ".msg": "mailicon" }; let lastindex = options.model.winningname.lastindexof(".");  docimageicon = extensiontype[options.model.winningname.slice(lastindex).tolowercase()];  if (typeof options.model.winningicon != "undefined" && options.model.winningicon != "") {   docimageicon = options.model.winningicon; } if (typeof docimageicon == "undefined") {   docimageicon = "newdocicon"; } let kendotxtmenu = ""; if (options.model.iselfdoc == true) {   kendotxtmenu = "winningicondiplay"; } //"iselfdoc":true;  let input = $("<span class='" + docimageicon + " displayinlineblock " + options.model.winninglength + " " + kendotxtmenu + " ' ></span><ul class='filetypeholder' id='filetypeicons' style='display: none;'><li class='filetypeholdertitle'>elf document type</li><li><span class='winningicon displayinlineblock' (click)='browsefiletype(doc)'></span></li> <li><span class='xlsicon displayinlineblock' (click)='browsefiletype('xls')'></span></li> <li><span class='ppticon displayinlineblock'(click)='browsefiletype('ppt')'></span></li> <li><span class='pdficon displayinlineblock' (click)='browsefiletype('pdf')'></span></li><li><span class='newdocicon displayinlineblock' (click)='browsefiletype('newdoc')'></span></li><li><span class='mailicon displayinlineblock' (click)='browsefiletype('mail')'></span></li><li class='filetypeholderclosebtn'> <button id='closebtn' class='commonbtn'>close</button></ul>"); input.appendto(container); // <button class='commonbtn' id='closebtn'>close</button> this.selectedoptions = null; this.selectedoptions = options; $("#filetypeicons").kendocontextmenu({   target: ".winningicondiplay",   showon: "click",   open: function(e) {      //  console.log($(this).index(this));     // console.log($(this).index());   },   select: function(e) {      //console.log(e.item.firstelementchild);     //console.log(e.item.firstelementchild.firstelementchild.classname);     var returnclassname = e.item.firstelementchild.firstelementchild.classname     if (returnclassname == "commonbtn") {       return false;     }      let firstclass = $("." + options.model.winninglength).attr('class').split(" ")[0];     var extensiontype = {       "pdficon": "pdf",       "ppticon": "ppt",       "xlsicon": "xls",       "winningicon": "doc",       "newdocicon": "default",       "mailicon": "msg"     };     var classnames = "pdficon ppticon xlsicon winningicon mailicon newdocicon";      var classes = $("." + options.model.winninglength).attr('class').split(" ");     $("#" + options.model.winninglength).val("." + extensiontype[returnclassname.split(" ")[0]]);     options.model.winningname = "";     options.model.winningname = "." + extensiontype[returnclassname.split(" ")[0]];     options.model.iselfdoc = false;     (var c = 0; c < classes.length; c++) {       if (classnames.includes(classes[c])) {         $("." + options.model.winninglength).removeclass(classes[c]);        }     }     options.model.winningicon = returnclassname.split(" ")[0];     $("." + options.model.winninglength).addclass(e.item.firstelementchild.firstelementchild.classname);     //$("."+options.model.winningid).addclass("displayinlineblock");     $("." + options.model.winninglength).addclass("winningicondiplay");       let data_source = that.gridkendo._datasource.data();     (let d = 0; d < data_source.length; d++) {       if (data_source[d].iselfdoc == true && data_source[d].elfdocid == "") {         that.gridkendo.enablesavedocument(false);       }      }    } }); }  } 


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -