我目前正在使用SignalR(2.1)Hubs开发一个应用程序.
我有一个WPF客户端,另一个是WCF客户端.一切都很好,因为他们完美地传递了信息.
我现在遇到的唯一问题是我注意到当应用程序因自动重启,WCF服务器故障以及其他一些原因而关闭时,OnDisconnected根本没有被触发.超时是默认值30秒.即使过了1天,我也从未打过电话(我试过).但是,超时适用于Web客户端.
它只在我调用hub.connection.stop()时才有效.
然而,当客户端是浏览器时,Ondisconnected方法非常有效.
因此,我想问一下Signal R Hub是否有办法检查客户端是否仍然连接或已经退出(例如ping)?
以下是我的指示:
restrict: 'E',
scope: {
},
templateUrl: 'directives/my.directive.html',
link: function(scope) {
// Want to be able to access "myForm" here (eg: to setPristine(), etc)
scope.bla = {}
}
Run Code Online (Sandbox Code Playgroud)
以下是模板中:
<form name="myForm" novalidate>
<input name="inputOne" type="text" ng-model="bla.name" required/>
</form>
Run Code Online (Sandbox Code Playgroud)
我试过了:
console.log(scope.myForm) // shows undefined
Run Code Online (Sandbox Code Playgroud)
和:
<form name="myForm" novalidate>
<div ng-init="bla.newForm = myForm"></div>
<input name="inputOne" type="text" ng-model="bla.name" required/>
</form>
console.log(scope.bla.newForm) // Undefined
Run Code Online (Sandbox Code Playgroud)
请不要告诉我:
require: '^form'
Run Code Online (Sandbox Code Playgroud)
我收到错误:无法获取FormController.这是正确的,因为表单是指令的一部分而不是父模板/范围
真的很感激这里的一些帮助.
编辑:
在这里,有很多很棒的答案,直到我不知道选择哪个作为“答案”。根据评论建议,该问题应标记为“主题外”。因此,很抱歉,我不会选择答案,如果其他人有相同的问题,我将在此保留。
之间有什么区别:
(1)
a = {
:x => 1
}
Run Code Online (Sandbox Code Playgroud)
和
(2)
b = {
:x => 1,
:y => nil
}
Run Code Online (Sandbox Code Playgroud)
考虑到:(1),a[:y] returns nil
而对于(2),b[:y] returns nil以及
我看到的唯一区别是当我输出时:
(1)
{
:x => 1
}
Run Code Online (Sandbox Code Playgroud)
和(2)
{
:x => 1
:y => nil
}
Run Code Online (Sandbox Code Playgroud) 我从一开始就经历了Javascript.没有捷径,没有框架,没有.只是简单的Javascript.只是为了它的乐趣,我正在做每一个运动.现在,当我谈到这个问题:
编写一个函数arrayToList来构建一个类似的数据结构
var list = {
value: 1,
rest: {
value: 2,
rest: {
value: 3,
rest: null
}
}
};
Run Code Online (Sandbox Code Playgroud)
我的代码必须能够满足以下条件:
console.log(arrayToList([10, 20]));
// ? {value: 10, rest: {value: 20, rest: null}} <== expected output which I am sure you know
Run Code Online (Sandbox Code Playgroud)
我试图递归地执行此操作,因为后面的问题要求我们递归地执行此操作(递归是我最薄弱的一点!).但是,我得到了以下代码:
var list =
{
value: 0,
rest: null
}
function arrayToList(array)
{
list.value = array.shift();
if(array.length!=0)
{
list.rest = arrayToList(array);
}
else
{
list.rest = null;
console.log(list); //this outputs to {value: 20, rest: null}
return list;
} …Run Code Online (Sandbox Code Playgroud)