小编Roy*_*ing的帖子

是否有必要取消订阅由Http方法创建的可观察对象?

您是否需要取消订阅Angular 2 http调用以防止内存泄漏?

 fetchFilm(index) {
        var sub = this._http.get(`http://example.com`)
            .map(result => result.json())
            .map(json => {
                dispatch(this.receiveFilm(json));
            })
            .subscribe(e=>sub.unsubscribe());
            ...
Run Code Online (Sandbox Code Playgroud)

memory-leaks rxjs angular2-http angular

181
推荐指数
8
解决办法
5万
查看次数

jQuery中提供了哪些钩子?

官方仅$.cssHooksjQuery API文档中记录,并$.valHooks在句子中提到了解决已知问题的方法.val().

我想知道除了这两个之外,jQuery中有多少个钩子,我们应该$.valHooks在插件开发中使用它们吗?如果是这样,我认为它应该记录为一个专门的主题,而不是一句话.

jquery dom dom-events

9
推荐指数
1
解决办法
902
查看次数

从角度2+的布线中排除特定路径

我的角度路线配置如下:

export const routes: Routes = [
  { path: 'mgmt', ... },
  { path: 'about', ... },
  { path: '**', component: PageNotFoundCmp }
];
Run Code Online (Sandbox Code Playgroud)

但是,在页面上,现在有一个链接(<a href="/help/en/index.html" target="_blank">)来帮助页面,这些页面是托管在同一服务器上的静态资源。使用上面的路由配置,显然它将与其他路由匹配**-找不到页面。

假设我们不能在另一个域中托管帮助资源,有什么方法可以将/help/**路径排除在角度路由之外?还是您认为这是对角度支持的有效特征要求?

router angular

5
推荐指数
1
解决办法
5004
查看次数

如何理解golang内存模型中的通道通信规则?

在学习golang的过程中,当我试图理解内存模型规范中描述的通道通信时,我有点困惑,如下所示:

  1. 通道上的发送在该通道的相应接收完成之前发生.
  2. 关闭通道发生在返回零值的接收之前,因为通道已关闭.
  3. 来自无缓冲通道的接收在该通道上的发送完成之前发生.
  4. 具有容量C的信道上的第k个接收发生在从该信道发送的第k + Cth个完成之前.

前两条规则清晰且易于理解,而我对第三条规则感到困惑,这似乎与其他规则相反......我是否错过了任何关于无缓冲通道的特殊规定?或者我是否正确如果我像下面的规范中的示例那样:

var c = make(chan int)
var a string

func f() {
    a = "hello, world"
    <-c    // A
}
func main() {
    go f()
    c <- 0 // B
    print(a)
}
Run Code Online (Sandbox Code Playgroud)

对于无缓冲通道,发送操作(B)被阻塞,直到接收器准备好接收值(A)?(比如:B开始并且直到A执行才返回)它准确吗?

我在Effective Go规范中找到了以下陈述,但是我的理解仍然存在差异......那么有人可以用简单直接的方式解释这个吗?

接收器始终阻塞,直到有数据要接收.如果通道未缓冲,则发送方将阻塞,直到接收方收到该值.如果通道有缓冲区,则发送方仅阻塞,直到将值复制到缓冲区为止; 如果缓冲区已满,则表示等待某个接收方检索到某个值.

channel memory-model go happens-before

3
推荐指数
1
解决办法
667
查看次数

如何使Ngrx-store与canLoad Guard一起使用

我不知道这是否是个好习惯。但是下面是我想做的事情:

我有2个延迟加载的模块:ManagementModuleConfigurationModule,并且路由配置如下:

const routes: Routes = [
  {path: '', redirectTo: 'management', pathMatch: 'full'}, {
    path: 'configuration',
    loadChildren: './configuration/configuration.module#ConfigurationModule',
    canLoad: [UnconfiguredGuard]
  },
  {
    path: 'management',
    loadChildren: './management/management.module#ManagementModule',
    canLoad: [ConfiguredGuard]
  }
]
Run Code Online (Sandbox Code Playgroud)

基本上,该想法是检查系统状态并重定向到不同的阶段,例如。如果尚未配置sys,则重定向到/configuration,否则,重定向到/management

在我添加@ngrx/store到项目中之前,两个canLoad防护很简单:

// ConfiguredGuard:
canLoad(route) {
  return this.configService.isConfigured()
        .do((configured: boolean) => {
          if (!configured) {
            // redirect to /configuration if unconfigured
            this.router.navigate(['/configuration']);
          }
        })
}
Run Code Online (Sandbox Code Playgroud)

现在,我要采用所有@ ngrx / {store,effects,router-store}库,然后将上述保护更改为:

canLoad(route) {
    this.store.dispatch(new CheckInitStatus());
    return this.store.select('initStatus')
      .filter(s => s.checked) …
Run Code Online (Sandbox Code Playgroud)

ngrx ngrx-effects angular ngrx-store-4.0

2
推荐指数
1
解决办法
1206
查看次数

如果在doctype声明中没有提到,那么默认的DTD是什么?

在我的页面中,doctype被声明为:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Run Code Online (Sandbox Code Playgroud)

没有明确指定DTD.我想在IE中哪些DTD会被默认?

似乎它的行为不一样

"http://www.w3.org/TR/html4/loose.dtd"
Run Code Online (Sandbox Code Playgroud)

因为我添加了loose.dtd后页面中的表格被破坏了.有人可以帮忙解释一下吗?谢谢!

html

1
推荐指数
2
解决办法
4569
查看次数