2017-09-12 3 views
0

Ich versuche, auf eine Funktion innerhalb einer SignalR-Verbindungsfunktion zuzugreifen. Um das besser zu veranschaulichen, ist der Code für das gesamte Skript.Ich kann keine Funktion innerhalb der SignalR-Verbindungsfunktion erreichen.

$(function() { 
    var chat = $.connection.chatHub; 
    chat.client.informOfStatusRequest = function(personToNotify, message) { 
     var sysUserId = @Convert.ToInt32(HttpContext.Current.Request.Cookies["sys_user_id"].Value); 
     if (sysUserId === personToNotify) { 
      $.notify({ 
       icon: 'glyphicon glyphicon-star', 
       message: message 
      }, { 
       animate: { 
        enter: 'animated fadeInRight', 
        exit: 'animated fadeOutRight' 
       } 
      }); 
     } 
    } 

    $.connection.hub.start().done(function() { 

     function disapproveTicket(ticketId, createdById) { 
      bootbox.confirm({ 
       title: 'CONFIRM', 
       message: 'Disapprove ticket ID ' +ticketId +'?', 
       buttons: { 
        confirm: { 
         label: 'YES', 
         className: 'btn-success' 
        }, 
        cancel: { 
         label: 'NO', 
         className: 'btn-danger' 
        } 
       }, 
       callback: function(response) { 
        if (response === true) { 
         $.ajax({ 
          type: 'POST', 
          url: '/Member/DisapprovePendingTicket', 
          data: {ticketId: ticketId} , 
          success: function(result) { 
           if (result === true) { 
            $.notify({ 
             icon: 'glyphicon glyphicon-star', 
             message: "Ticket has been disaproved" 
            }, { 
             animate: { 
              enter: 'animated bounceIn', 
              exit: 'animated bounceOut' 
             } 
            }, { 
             type: 'success' 
            }); 
            $("#div_get_pending_ticket").load('/Member/GetPendingTicket'); 
            getPendingRequestCount(); 
            chat.server.informUserOnRequestStatus(createdById,"Ticket has been disaproved"); 
           } else { 
            $.notify({ 
             icon: 'glyphicon glyphicon-star', 
             message: "Failed in disapproving the ticket." 
            }, { 
             animate: { 
              enter: 'animated bounceIn', 
              exit: 'animated bounceOut' 
             } 
            }, { 
             type: 'success' 
            }); 
           } 
          } 
         }); 
        } 
       } 
      }); 
     } 
    }); 
}); 

und das ist, wie ich versuche, die „disapproveTicket“ Funktion zuzugreifen:

<td> 
    <a href="javascript:void(0);" onclick="">Check</a> | 
    <a href="javascript:void(0);" onclick="disapproveTicket(@item.TicketId, @item.CreatedById)">Disapprove</a> 
</td> 

Auf meiner Konsole heißt es, dass „disapproveTicket nicht definiert ist“. Das ablehnendeTicket befindet sich in einer $ (function()) und befindet sich in $ .connection.hub.start() .done(). Ich habe andere Antworten darauf gesehen, wie man auf geschachtelte Funktionen zugreifen kann, aber die Struktur unterscheidet sich von dem, was ich habe. Kannst du es mir bitte zeigen? Vielen Dank.

Antwort

0

Ich sah Ihre Funktion missbilligenTicket() kann verwendet werden, wenn $ .connection.hub.start(). Done(). damit das Onclick-Attribut im HTML-Element es nicht aufrufen kann. Ich glaube, Sie

$.connection.hub.start().done(function(){ 
    $("#your_element").click(function(){ 
     disapproveTicket() 
    }) 
}) 

Hoffnung verwenden müssen, dies kann Ihnen helfen,

+0

ich die JavaScript in HTML zu sehen. Irgendwie ist es einfach nicht erreichbar. Ich rate vielleicht, weil es in einer anderen Funktion ist. Da brauche ich Hilfe. – Ibanez1700

+0

Ich bearbeite meine Antwort, sorry, weil ich am Anfang nicht sah, dass Sie $ (function() {}) verwenden –

+0

Wenn ich es so benutze, wie kann ich meine Parameter übergeben? Ich übergebe'@item.TicketId und @ item.CreatedById 'aus meiner Teilansicht. – Ibanez1700

Verwandte Themen