尝试使用SignalR
发送消息时出现以下错误:
TypeError:$ scope.chatHub.server.SendMessageToAdmin不是函数
此功能发生错误:
vm.sentUserMsg = function (message) {
var userName = 'Guest';
$scope.name = 'Guest'; // holds the user's name
$scope.message = ''; // holds the new message
$scope.messages = []; // collection of messages coming from server
$scope.chatHub = null; // holds the reference to hub
$scope.chatHub = $.connection.chatHub; // initializes hub
$.connection.hub.start(); // starts hub
$scope.chatHub.client.broadcastMessage = function (name, message) {
var newMessage = name + ' says: ' + message;
$scope.messages.push(newMessage);
$scope.$apply();
};
var producttype = '1';
$scope.chatHub.server.SendMessageToAdmin(userName, message, producttype);
$scope.message = '';
}
答案 0 :(得分:0)
我打算猜测你有一个“SendMessageToAdmin”方法的套管问题。
我假设您遵循常见约定,并且位于Hub类中的服务器上的SendMessageToAdmin方法以大写“S”开头。请注意,当SignalR生成Javascript代理时,它会更改方法名称的大小以匹配Javascript约定。因此,您的javascript代码中的方法名称应该是camelCased。例如:
$scope.chatHub.server.sendMessageToAdmin(userName, message, producttype);
相关文档为here。
具体来说,这是引用:
在Hub上传入方法名称的驼峰版本。 SignalR 自动进行此更改,以便JavaScript代码可以符合 JavaScript惯例。