我不熟悉传递函数的概念.我如何调用GetItemsAsync()并在没有任何条件的情况下返回所有内容?
var items = await Respository.GetItemsAsync(d => !d.Completed);
public async Task<IEnumerable<T>> GetItemsAsync(Expression<Func<T, bool>> predicate)
{
IDocumentQuery<T> query = client.CreateDocumentQuery<T>(
UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId),
new FeedOptions { MaxItemCount = -1 })
.Where(predicate)
.AsDocumentQuery();
List<T> results = new List<T>();
while (query.HasMoreResults)
{
results.AddRange(await query.ExecuteNextAsync<T>());
}
return results;
}
Run Code Online (Sandbox Code Playgroud) 我需要如何设置HttpInterceptor?oidcSecurityService没有定义。
将HttpClient让你写拦截器。一个常见的用例是拦截任何传出的 HTTP 请求并添加授权标头。请记住,OidcSecurityService通过构造函数注入拦截器会导致循环依赖。为避免这种情况,请改用注射器。
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
private oidcSecurityService: OidcSecurityService;
constructor(private injector: Injector) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let requestToForward = req;
if (this.oidcSecurityService === undefined) {
this.oidcSecurityService = this.injector.get(OidcSecurityService);
}
if (this.oidcSecurityService !== undefined) {
let token = this.oidcSecurityService.getToken();
if (token !== '') {
let tokenValue = 'Bearer ' + token;
requestToForward = req.clone({ setHeaders: { Authorization: tokenValue } });
}
} else {
console.debug('OidcSecurityService …Run Code Online (Sandbox Code Playgroud) 我的应用程序使用身份服务器,并且一旦重定向回来,我会将用户名存储在会话变量中。
该名称未显示,只有刷新页面才会显示。如何纠正这个问题?
import { Component, OnInit } from "@angular/core";
import { Router } from "@angular/router";
import { environment } from '../../environments/environment';
@Component({
selector: "app-header",
templateUrl: "./header.component.html",
styleUrls: ["./header.component.css"]
})
export class HeaderComponent implements OnInit {
navLinks: any[];
activeLinkIndex = -1;
displayName: string;
logoutUrl: string;
constructor(private router: Router) {
this.navLinks = [
{
label: "Projects",
link: "project-list",
index: 0
}
];
}
ngOnInit(): void {
this.router.events.subscribe(res => {
this.activeLinkIndex = this.navLinks.indexOf(
this.navLinks.find(tab => tab.link === "." + this.router.url)
);
});
this.displayName …Run Code Online (Sandbox Code Playgroud)