小编Luk*_*pin的帖子

使用Angular2 RC6获取queryParams的正确方法

请仅提供RC6及以上的当前答案.

我最近尝试从RC1升级到RC6,发现RouteSegment消失了.经过大量挖掘后,我发现了ActivatedRoute,但是从网址中提取原始值似乎很复杂.

读取静态查询值的新方法是否正确如下?

const id : Observable<number> = this.route.queryParams.map(p => p.id);
Run Code Online (Sandbox Code Playgroud)

如果是这样,有人可以解释为什么我需要一个地图和一个可观察的,只是为了从URL的查询字符串中提取值6?

有人可以解释一下我可以使用的新酷功能,以保证代码复杂性的大幅增加吗?

如果我遗漏了一些明显的东西,请指出我正确的方向.我更喜欢坚持一个简单的URL查询系统,例如:let id = params.id;

谢谢

angular2-routing angular

7
推荐指数
1
解决办法
9678
查看次数

强制Angular2在导航时重新加载组件

在Angular2 RC1和更低版本中调用路由链接总是导致组件重新加载:

<a [routerLink]="['/page', {id: 1}]">A link </a>
Run Code Online (Sandbox Code Playgroud)

使用Angular2,无RC,如果组件使用不同的参数导航到自身,则不会重新加载该组件.有没有办法让重新加载行为回来?

我理解处理此问题的另一种方法,从ActivatedRoute订阅并检测到变量,但这会导致组件逻辑的复杂性增加.

angular2-routing angular

7
推荐指数
1
解决办法
3134
查看次数

使用let加密而无需控制根目录

我正在运行Django网站并使用let加密我的SSL.框架的配置使得我无法访问:http://url.com/.xxxx

我可以免费访问的是:http: //url.com/static/.xxxx

我的/ static/URL可以接受并托管任何随机文件,以便加密需求.有没有办法让certbot支持/ static /而不是只使用/为URL?

谢谢

编辑

我发现一个可以接受的工作对我来说是可以接受的.进一步挖掘,我发现/.well-known/始终是SSL检查的基本目录.这意味着我们可以添加一个静态目录,它可以很好地与certbot一起使用.这是如何,首先将其添加到您的apache配置中:

Alias /.well-known/ /var/www/XXXXX/website/static/.well-known/
<Directory /var/www/XXXXX/website/static/.well-known/>
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

然后将其添加到settings.py文件中:

STATIC_ENCRYPT_URL = '/.well-known/'
STATIC_ENCRYPT_ROOT = '/var/www/XXXXX/website/static/'
Run Code Online (Sandbox Code Playgroud)

将其添加到您的urls.py中:

urlpatterns = [
  ... 
] + static(settings.STATIC_ENCRYPT_URL, document_root=settings.STATIC_ENCRYPT_ROOT)
Run Code Online (Sandbox Code Playgroud)

重置您的网络服务器.现在你有一个特殊的url /.well-known/来托管任何certbot所需的文件.

我仍然希望得到比这更好的答案.

apache django ssl lets-encrypt certbot

6
推荐指数
1
解决办法
785
查看次数

C++ 14堆栈分配了共享指针

我有一个我正在更新的Pre C++ 11/14代码库.

代码几乎难以使用堆栈分配,然后传递这些指针,例如:

{
  KlassX x;
  KlassY y;

  y.doThings( &x );  //Holds the pointer to KlassX for later use

  return mainLoop(); //Doesn't return until the program finishes
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,KlassY对*KlassX的内存分配一无所知.在这个特定的应用程序中它是安全的,但它不是"安全代码",因为如果以不同的方式使用KlassY,它不会使用shared_ptr来跟踪它所持有的指针的取消分配.

我宁愿实现KlassY来使用shared_ptr,而不是将程序更改为堆分配.有没有一种安全的方法可以继续使用堆栈分配方案,但让KlassY为KlassX使用shared_ptr?

我很抱歉,如果这是重复的,我做了相当多的谷歌搜索,无法找到这个问题的答案.

c++ c++11 c++14

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

Rust 1k TCP连接限制

我正在编写一个高吞吐量的多线程Rust服务器.服务器需要在10-20k连接附近处理.

我已经编写了程序并且速度非常快,但是它只允许最多1k个连接.1k之后,在TCPListener删除当前连接之前不会返回任何其他内容.

我没有看到Rust内部的任何地方设置连接限制.这是一个Rust限制,core::net或者这是一个系统限制?

我在Linux 4.14.15上运行,开发服务器将在4.14.xxxx上运行.Rust 1.23.0

linux tcp rust

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

C++:使用auto将类声明为函数内的变量

我正在尝试对我的函数中的所有局部变量使用auto.

请使用以下代码:

class obj 
{
  public:
  obj() {};
  obj( obj&& o ) = delete;
};

int main()
{
  obj test0;
  auto test1 = obj();

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译代码:

$ g++ --std=c++1z main.cpp
main.cpp: In function ‘int main()’:
main.cpp:13:20: error: use of deleted function ‘obj::obj(obj&&)’
   auto test1 = obj();
Run Code Online (Sandbox Code Playgroud)

请注意,定义test0完全没问题,但尝试执行完全相同类型的test1声明是编译器错误.显然应该是编译器错误,但在这种情况下,是否意味着obj无法用auto定义?我正在使用我无法控制的QT对象来解决这个问题.

我还在使用C++ 98格式来声明变量,还是有其他方法可以使用auto?

谢谢!!!

c++ move-semantics c++11 c++17

0
推荐指数
1
解决办法
121
查看次数

Rust初始化泛型类型

我有下面概述的复杂代码块。基本上,我需要初始化一个泛型,它始终是一个结构,并且该结构已实现Default,但是编译器仍然抱怨:

fn create<T: Default>() -> T
{
    T { ..Default::default() }
}

fn main()
{
    let mut x = create::<Bob>();
}
Run Code Online (Sandbox Code Playgroud)

产量:

error[E0574]: expected struct, variant or union type, found type parameter `T`
  --> macro.rs:71:5
   |
71 |     T { ..Default::default() }
   |     ^ not a struct, variant or union type

error: aborting due to previous error
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉锈T总是一个结构或某种东西?

谢谢,

rust

0
推荐指数
1
解决办法
819
查看次数