2017-08-20 4 views
0
  • Ich bin neu in Jasmin und Testfällen
  • ich Testfälle für meinen js Code in Geige zu schreiben versuchen.
  • aber ich bin mit einem Fehler konfrontiert. Uncaught SyntaxError: Unerwarteter Bezeichner
  • können Sie mir sagen, wie man es repariert.
  • Bereitstellung meines Codes unter
  • sollte ich nicht Spieler Methode verwenden ??
  • ich alle Parameter für Spieler

http://jsfiddle.net/2yw4o6z8/1/Uncaught Syntaxerror: Unerwartete Kennung in der öffentlichen Spieler

public players(container: any, options: any, that: any,selectedoptions) { 
    $(".displayInlineBlock").removeClass("SWIMMINGumentMobileDiplay"); 
    let SWIMMINGImageMobile = "SWIMMINGumentMobile"; 

    let extensionType = { 
     ".pdf": "pdfMobile", 
     ".ppt": "pptMobile", 
     ".xls": "xlsMobile", 
     ".xlsx": "xlsMobile", 
     ".SWIMMING": "SWIMMINGumentMobile", 
     ".SWIMMINGx": "SWIMMINGumentMobile", 
     ".msg": "mailMobile" 
    }; 
    let lastIndex = options.model.SWIMMINGumentName.lastIndexOf("."); 

    SWIMMINGImageMobile = extensionType[options.model.SWIMMINGumentName.slice(lastIndex).toLowerCase()]; 

    if (typeof options.model.SWIMMINGumentMobile != "undefined" && options.model.SWIMMINGumentMobile != "") { 
     SWIMMINGImageMobile = options.model.SWIMMINGumentMobile; 
    } 
    if (typeof SWIMMINGImageMobile == "undefined") { 
     SWIMMINGImageMobile = "newDocMobile"; 
    } 
    let kendotxtMenu = ""; 
    if (options.model.isElfDoc == true) { 
     kendotxtMenu = "SWIMMINGumentMobileDiplay"; 
    } 
    //"isElfDoc":true; 

    let input = $("<span class='" + SWIMMINGImageMobile + " displayInlineBlock " + options.model.SWIMMINGumentlength + " " + kendotxtMenu + " ' ></span><ul class='fileTypeHolder' id='fileTypeMobiles' style='display: none;'><li class='fileTypeHolderTitle'>ELF Document Type</li><li><span class='SWIMMINGumentMobile displayInlineBlock' (click)='browseFileType(SWIMMING)'></span></li> <li><span class='xlsMobile displayInlineBlock' (click)='browseFileType('xls')'></span></li> <li><span class='pptMobile displayInlineBlock'(click)='browseFileType('ppt')'></span></li> <li><span class='pdfMobile displayInlineBlock' (click)='browseFileType('pdf')'></span></li><li><span class='newDocMobile displayInlineBlock' (click)='browseFileType('newSWIMMING')'></span></li><li><span class='mailMobile 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; 
    $("#fileTypeMobiles").kendoContextMenu({ 
     target: ".SWIMMINGumentMobileDiplay", 
     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.SWIMMINGumentlength).attr('class').split(" ")[0]; 
     var extensionType = { 
      "pdfMobile": "pdf", 
      "pptMobile": "ppt", 
      "xlsMobile": "xls", 
      "SWIMMINGumentMobile": "SWIMMING", 
      "newDocMobile": "default", 
      "mailMobile": "msg" 
     }; 
     var classNames = "pdfMobile pptMobile xlsMobile SWIMMINGumentMobile mailMobile newDocMobile"; 

     var classes = $("." + options.model.SWIMMINGumentlength).attr('class').split(" "); 
     $("#" + options.model.SWIMMINGumentlength).val("." + extensionType[ReturnClassName.split(" ")[0]]); 
     options.model.SWIMMINGumentName = ""; 
     options.model.SWIMMINGumentName = "." + extensionType[ReturnClassName.split(" ")[0]]; 
     options.model.isElfDoc = false; 
     for (var c = 0; c < classes.length; c++) { 
      if (classNames.includes(classes[c])) { 
      $("." + options.model.SWIMMINGumentlength).removeClass(classes[c]); 

      } 
     } 
     options.model.SWIMMINGumentMobile = ReturnClassName.split(" ")[0]; 
     $("." + options.model.SWIMMINGumentlength).addClass(e.item.firstElementChild.firstElementChild.className); 
     //$("."+options.model.SWIMMINGumentId).addClass("displayInlineBlock"); 
     $("." + options.model.SWIMMINGumentlength).addClass("SWIMMINGumentMobileDiplay"); 


     let data_source = that.gridkendo._dataSource.data(); 
     for (let d = 0; d < data_source.length; d++) { 
      if (data_source[d].isElfDoc == true && data_source[d].elfDocID == "") { 
      that.gridkendo.enableSaveDocument(false); 
      } 

     } 

     } 
    }); 


} 

describe("Our data array", function() { 
    it("has four items", function() { 
    expect(players()).toBe(0); 
    }); 
}); 

Antwort

0

Das primäre Problem ist, übergeben müssen, dass JSFiddle nicht Typoskript für Sie JavaScript nicht kompilieren.

Probieren Sie den TypeScript-Spielplatz aus und kopieren Sie das JavaScript bei Bedarf in JSFiddle.

Zusätzliche Themen

Sie haben die öffentliche Methode in einer Klasse eingeschlossen ... wickeln Sie Ihre players Methode in einer Klasse ... dh

class Example { 
    public players(...) { } 
} 

Sie müssen eine Instanz erstellen die Example Klasse, die Methode zu verwenden, wenn Sie es statisch machen:

const example = new Example(); 
example.players(...); 

Sie auch die Eigenschaft „selectedoptions“, wie Sie angeben müssen überraschen Sie den Compiler, wenn Sie plötzlich darauf verweisen. Fügen Sie dieses auch innerhalb der Klasse hinzu:

private selectedoptions: any; 

Sie haben auch noch etwas zu tun, damit die Methode einen Wert zurückgibt. Du gibst keine Argumente, also hast du Undefiniertheit im ganzen Laden.

Wenn Sie es „läuft“ erhalten, werden Sie den Test nicht sieht aufgrund options undefiniert ist:

http://jsfiddle.net/om4pc7s8/1/

Ich hoffe, das hilft.

+0

danke für deine antwort ... kannst du in meiner fiddle seine verwirrung aktualisieren :( –

+0

@texirv ich habe einen laufenden JSFliddle link hinzugefügt - er enthält den kompilierten code von http://www.typescriptlang.org/play/ index.html - es hat auch eine Verbindung zu jQuery, die Sie brauchen. Es läuft, so dass Sie in der Lage sein werden, dann daran zu arbeiten, den Test zu bestehen. – Fenton

+0

irgendeine Idee, wie man diesen Fehler behebt? TypeError: Kann Eigenschaft nicht lesen ' Modell 'von undefiniert –

Verwandte Themen