小编dmc*_*dle的帖子

Angular 6:无法正确设置 http Header 的 Content-Type

我正在尝试在 Angular 6 中使用 HttpHeader 进行后期调用,并且我将 Content-Type 设置为 application/json。但是服务器为 Content-Type 获取 x-www-form-urlencoded 而不是 application/json。

服务.ts

   
myFunction(id: string, name: string, fields: string[]) {
  const body = {
    id: id,
    name: name,
    fields: fields
  };
  let headers = new HttpHeaders();
  headers= headers.set('content-type', 'application/json');
  return this.http.post(this.URL , body, {headers});
}
Run Code Online (Sandbox Code Playgroud)

组件.ts

submit(){
  this.myService.myFunction(this.id, this.form.value.name,  
  this.form.value.fields).subscribe((res:any) => {
    console.log(this.form);
  }, error => {
    console.log(JSON.parse(error.error).errors);
  })
}
Run Code Online (Sandbox Code Playgroud)

content-type http-headers angular

7
推荐指数
2
解决办法
2万
查看次数

是否有非手动方式来创建Angular 6路由器路径的类似目录的结构?

我正在设置一个Angular 6应用程序.组件使用类似目录的结构,目录可以包含其他目录,嵌套就像它们在磁盘上一样.该组件将显示目录中的内容列表,包括文件和其他目录,如果用户单击目录,我希望应用程序嵌套一个级别,并使URL反映该级别.换句话说,我希望路由器将状态信息保存在URL中,以便用户可以使用浏览器中的后退按钮并进行其他正常导航.

我可以使用路由器模块中的以下代码完成此操作:

{ path: 'show-dir/:dir1', component: ViewDirectoryComponent },
{ path: 'show-dir/:dir1/:dir2', component: ViewDirectoryComponent },
{ path: 'show-dir/:dir1/:dir2/:dir3', component: ViewDirectoryComponent },
{ path: 'show-dir/:dir1/:dir2/:dir3/:dir4', component: ViewDirectoryComponent }
....
Run Code Online (Sandbox Code Playgroud)

但是,这是有限的,因为我手动输入每个级别,并且不希望有100个手动条目(然后限制100个嵌套目录...)

有没有更好的方法来实现这一目标?

谢谢你的帮助.

angular angular-router angular6

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

如何在 Angular 中对行为主题进行单元测试

我想测试 .get 的 get 和 set 方法my user.store.ts。我有一个get()用于获取usersaddUsers()用于将用户添加到BehaviourSubject. 我怎样才能做到这一点?

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { User } from 'ngx-login-client';

@Injectable({
  providedIn: 'root'
})

export class UserStore {

  private _users: BehaviorSubject<User[]> = new BehaviorSubject([]);

  get users() {
    return this._users.asObservable();
  }

  addUsers(users: User[]) {
    this._users.next(users);
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望输出是在addUsers()调用时添加的值,并且get在调用时可以添加用户。我get users()是 Angular 测试的新手。

得到类似的错误:

Expected Observable({ _isScalar: false, source: BehaviorSubject({ …

unit-testing typescript angular angular6 angular7

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