2013-07-11 32 views
9

Tôi đang kết hợp SignalR vào một dự án mà tôi đã sử dụng require.js để xử lý các phụ thuộc tập lệnh của mình.Cấu hình SignalR & require.js

Tôi gặp sự cố nhỏ khi đảm bảo "/ signalr/hubs" được gọi sau khi tải "jquery.signalR-1.1.2".

Tôi đã nhận được nó để làm việc, nhưng tôi tự hỏi nếu có một thay thế tốt hơn ra khỏi đó.

Đây là những gì tôi có:

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

Có cách nào tôi có thể tạo ra một shim vào đây để thiết lập sự phụ thuộc giữa signalr/hub và kịch bản signalr?

Cảm ơn!

Trả lời

28

này làm việc cho tôi với 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

Hi Drew, Cảm ơn đã gợi ý. Tôi đã thử điều đó, và đây là những gì tôi nhận được: NHẬN http: // localhost: 39047/scripts/noext! /signalr/hubs.js? V = 635092295003095722 404 (Không tìm thấy) require.js: 1854 Lỗi không bắt buộc : Lỗi tập lệnh http://requirejs.org/docs/errors.html#scripterror require.js: 159 –

+0

Mặc dù nó có ý nghĩa hoàn hảo về mặt lý thuyết nhưng nó không hoạt động trong thực tế. Không chắc chắn tại sao, thực sự bực bội. –

+0

Chỉ muốn kiểm tra, bạn có thực sự có /scripts/noext.js trong dự án của mình không ?? –