0
每一个。我弄清楚我最近遇到的问题是什么,但现在我需要一个建议如何解决这个问题。我试图启动SignalR javascript客户端(使用https://github.com/JustMaier/angular-signalr-hub)执行ng-init指令时发生错误。 以下是错误:SignalR和AngularJS指令
Error: SignalR: Connection must be started before data can be sent. Call .start() before .send()
at Object.signalR.fn.signalR.send (localhost:4745.lan/Scripts/jquery.signalR-2.1.1.
当我使用SignalR脚本NG-点击everithing是确定的。这里只是一个测试应用程序:
angular.module('app', ['SignalR'])
.factory('SomeService', ['$rootScope', 'Hub', function ($rootScope, Hub) {
//declaring the hub connection
var hub = new Hub('myHub', {
//client side methods
listeners: {
'doAction': function (message) {
alert(message);
console.log("It works");
$rootScope.$apply();
}
},
//server side methods
methods: ['someAction'],
//handle connection error
errorHandler: function (error) {
console.error(error);
}
});
var load = function() {
console.log(hub);
hub.someAction(); //Calling a server method
};
return {
loadSomeMethod: load
};
}])
.controller('appController', ['$scope', 'SomeService', function ($scope, SomeService) {
$scope.callMethod = SomeService.loadSomeMethod;
$scope.text = "Index from Angular";
}]);
查看
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div ng-app="app" ng-controller="appController">
<h2>{{text}}</h2>
<input type="button" name="GreetAll" value="Greet All" ng-click="callMethod()" />
</div>
@section scripts
{
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jquery.signalR")
@*<script src="~/SignalR/Hubs"></script>*@
@Scripts.Render("~/bundles/angular")
@Scripts.Render("~/bundles/angular-resource")
@Scripts.Render("~/bundles/angular-signalr-hub")
@Scripts.Render("~/bundles/App")
@*@Scripts.Render("~/bundles/AppNew")*@
}