問題是如果我第一次加載「#/ chat」我的信號R聊天完美工作。但如果我第一次加載「#/」,然後路線到「#/ chat」,我的聊天不起作用。使用角度路由後SignalR不起作用
我對Signal R很新,所以我不知道這個問題。 這裏是我的代碼:
app.js
module.config(function ($routeProvider) {
$routeProvider.when("/", {
controller: "ItemsController",
templateUrl: "/templates/itemsView.html"
});
$routeProvider.when("/item/:id", {
controller: "SingleItemController",
templateUrl: "/templates/singleItemView.html"
});
$routeProvider.when("/login", {
controller: "LoginController",
templateUrl: "/templates/loginView.html"
});
$routeProvider.when("/chat", {
controller: "ChatController",
templateUrl: "/templates/chatView.html"
});
$routeProvider.otherwise({ redirectTo: "/" });
});
$(function() {
$.connection.hub.logging = true; //for debugg
$.connection.hub.start();
});
$.connection.hub.error(function (err) {
console.log('An error occurred: ' + err);
});
angular.module('ogateApp').value("chat", $.connection.chat);
ChatHub.cs
[HubName("chat")]
public class ChatHub : Hub
{
public void SendMessage(string message)
{
Clients.All.newMessage(message);
}
}
ChatController.js
module.controller("ChatController", function ($scope, chat) {
$scope.messages = [];
$scope.sendMessage = function() {
chat.server.sendMessage($scope.newMessage);
$scope.newMessage = "";
};
chat.client.newMessage = function (message) {
$scope.messages.push({ message: message });
$scope.$apply();
console.log(message);
};
});