我一直在寻找一种方式来传递查询paramters与新API调用HttpClientModule的HttpClient,还没有找到一个解决方案.使用旧Http模块,您可以编写类似这样的内容.
getNamespaceLogs(logNamespace) {
// Setup log namespace query parameter
let params = new URLSearchParams();
params.set('logNamespace', logNamespace);
this._Http.get(`${API_URL}/api/v1/data/logs`, { search: params })
}
Run Code Online (Sandbox Code Playgroud)
这将导致对以下URL的API调用:
localhost:3001/api/v1/data/logs?logNamespace=somelogsnamespace
但是,新HttpClient get()方法没有search属性,所以我想知道在哪里传递查询参数?
我正在构建一个需要授权标头的新应用.通常我会使用与此scotch.io文章中的方法非常相似的内容.但是我注意到,现在通过新的HttpClientModule在Angular 4生态系统中完全支持HTTP拦截器,我试图找到一些关于如何使用它们的文档.
如果我不正确(从4.3开始)这是注入授权标题的最佳做法,我也愿意接受建议.我的想法是,它是最近添加的一个功能,这意味着可能有充分的理由迁移到"Angular Approved"方法.
让我从理由开始.许多已经使用AngularJS多年的公司仍在使用它,并且没有立即计划迁移到4+.因此具有可销售性,以及将两者都视为Angular开发人员的必然要求.
我的问题很广泛,但我很想听听那些对两者都有经验的人.它们是完全不同的,还是会将某些知识转移?对于那些非常了解两者的人来说,真正对你有哪些重要区别?
自从挖掘角度依赖注入(DI)的前几个基本级别,并且击中了用于Root()的gem之后,我一直想知道实际使用它的最佳实践是什么.
我偶然发现了这种方法,同时寻找一种允许延迟加载模块访问根上下文中的服务的方法,允许在两个模块之间共享数据流,其中一个或两个模块可能是延迟加载的.从那以后我想知道,你可以为共享模块中的所有内容使用forRoot()并在整个应用程序中保存大量的import语句吗?捕获量是多少?是否存在某些易于用于root的东西,以及其他不容易使用的东西?或者是root用于主要用于桥接延迟加载模块时桥接上述DI上下文问题?
我一直在开发一个应用程序,它允许一些不同的组件BehaviorSubject在Angular中更新.在每个组件中,我存储了前一个BehaviorSubject值的本地副本.为了知道组件是否生成了新值被推出,我计划仅使用LoDash _.isEqual()函数比较两个对象.但是我发现我的本地Observable副本已经更新,然后才能进行比较.
Angular是否查找=语句并在Observable next函数之外创建对该组件属性的外部绑定?
鉴于下面的代码,我发现this.QueryParams组件中的属性已更新为函数中正在处理的当前值,导致我的比较失败,即使我没有将新值分配给属性,直到if评估语句为止.
零件
export class LogsModalComponent implements OnInit {
private QueryParams: LogsQueryParameters
ngOnInit() {
this._LogsService.QueryParameters$.subscribe(_QueryParams => {
console.log(this.QueryParams);
console.log(_QueryParams);
if (!_.isEqual(this.QueryParams, _QueryParams) {
this.QueryParams = _QueryParams;
// Some code to process if the new value was different.
}
}
}
updateStartDate() {
this.QueryParams.filterStartDate = _.isUndefined(this.FilterStartDate) ? NaN : new Date(this.FilterStartDate.nativeElement.value).getTime();
this._LogsService.updateQueryParams(this.QueryParams);
}
}
Run Code Online (Sandbox Code Playgroud)
服务
LogsQueryParameters: BehaviorSubject<LogsQueryParameters> = new BehaviorSubject<LogsQueryParameters>({
limit: 25,
logLevels: "",
logTypes: "", …Run Code Online (Sandbox Code Playgroud)