【发布时间】:2017-01-26 20:12:25
【问题描述】:
我是 signalR 的新手。我正在做的是创建一个简单的应用程序,将名称添加到数据库并显示给客户端,但我收到错误“无法读取未定义的属性‘客户端’” 这是我的 angularJS 代码
myApp.controller('firstController', function ($scope, $http) {
$scope.saveName = function () {
$http.post("/Name/saveName/", { userName: $scope.name }).then(function (response) {
$scope.loadNames();
})
}
$scope.loadNames = function () {
$http.get("/Name/getName/").then(function (response) {
$scope.nameList = response.data;
})
}
$scope.loadNames();
$scope.hub = $.connection.myHub;
$scope.notify = function () {
$scope.hub.client.UserAddHub = function (name) {
$scope.$apply(function () {
$scope.nameList.push(name);
})
}
$.connection.hub.start();
}
$scope.notify();
});
这是我在服务器端写的
private static IHubContext userHubContext = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
operations op = new operations();
op.save(userName);
userHubContext.Clients.All.UserAddHub(userName);
这是我的中心类
[HubName("myHub")]
public class MyHub : Hub
{
}
我错过了什么吗?有什么建议吗?谢谢。
【问题讨论】:
-
在你的 $scope.loadNames() 行之后,添加一个 console.log() 来查看 $scope.nameList 是什么(如果有的话)
-
这是我在控制台中得到的 angular.js:14328 TypeError: Cannot read property 'client' of undefined at ChildScope.$scope.notify (myScript.js:20)
-
对 SignalR 不太了解,但您的 $scope.hub 肯定是 null 不要浪费您的时间查看“客户端”。可能是 $.connection.myHub 无法正常工作。如果你想检查它,只需写 $scope.hub={};然后它会说 UserAddHub is undef
-
我刚刚添加了#scope.hub={};但错误是一样的.. TypeError: Cannot read property 'client' of undefined