2013-07-11 7 views
9

sto incorporando SignalR in un progetto in cui sto già utilizzando require.js al trattamento dei miei script dipendenze.SignalR & require.js configurazione

Sto avendo un piccolo problema assicurandomi che "/ signalr/hubs" venga chiamato dopo i carichi di "jquery.signalR-1.1.2".

Ho avuto modo di funzionare, ma mi chiedo se c'è un'alternativa migliore là fuori.

Questo è quello che ho:

require(["signalr"], function() { 
    require(["noext!/signalr/hubs"], function() { 
     //initialize and work with the hub here 
    } 
} 

C'è un modo per creare uno spessore qui per stabilire la dipendenza tra signalr/hub e lo script signalr?

Grazie!

risposta

28

questo funziona per me con SignalR 1.1.2:

require.config({ 
baseUrl: "/<your scripts dir>", 
paths: { 
    "jquery": "jquery-<your jquery version>.min", 
    "signalr.core": "jquery.signalR-<your signalr version>.min", 
    "signalr.hubs": "/signalr/hubs?" 
}, 
shim: { 
    "jquery": { 
     exports: "$" 
    }, 
    "signalr.core": { 
     deps: ["jquery"], 
     exports: "$.connection" 
    }, 
    "signalr.hubs": { 
     deps: ["signalr.core"], 
    } 
} 
}); 

require(["jquery", "signalr.hubs"], 
    function($) 
    { 
     var hubProxy = $.connection.myHub; 

     // ... go to town ... 
    }); 
+0

Ciao Drew, Grazie per il suggerimento. Ho già provato questo, e questo è quello che ottengo: OTTIENI http: // localhost: 39047/scripts/noext! /signalr/hubs.js? V = 635092295003095722 404 (non trovato) require.js: 1854 Errore non rilevato : Errore di script http://requirejs.org/docs/errors.html#scripterror require.js: 159 –

+0

Sebbene abbia perfettamente senso in teoria, non funziona nella pratica. Non so perché, davvero frustrante. –

+0

Voglio solo controllare, hai effettivamente /scripts/noext.js nel tuo progetto ?? –