小编san*_*dum的帖子

使用Angular 4中另一个模块的组件

我在AppModule中有RoomsComponent,它的路由是/ rooms.此外,我有一个懒惰的模块CompaniesModule与组件CompaniesComponent与路由/公司.

当我从AppModule重用RoomsComponent时,我正在尝试构建类似/ companies/{company_id}/rooms /的路由.

我不能这么做很长的RoomsComponent没有在CompaniesModule中声明,但这会引发一个错误,因为组件不能在多个模块中声明.

angular

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

Angular router url返回斜杠

我试图通过使用路由器获取当前的路由器路径,但是当我这样做console.log(this.router.url)时返回"/",虽然我在"/ login".但是当我安慰整个this.router对象时,有一个url值为"/ login" 的属性.

这是来自app.component.ts的代码

export class AppComponent implements OnInit{
  constructor(private router: Router) {}

  ngOnInit(){
    console.log(this.router);
  }

}
Run Code Online (Sandbox Code Playgroud)

app.module.routing.ts

import {NgModule} from '@angular/core';
import {PreloadAllModules, RouterModule, Routes} from '@angular/router';

import {NotFoundComponent} from './not-found/not-found.component';
import {AuthGuard} from './auth/auth-guard.service';

const appRoutes: Routes = [
  { path: '', loadChildren: './first/first.module#FirstModule'},
  { path: 'login', loadChildren: './login/login.module#LoginModule'},
  { path: '404', component: NotFoundComponent, canActivate: [AuthGuard] },
  { path: '**', redirectTo: '/404'}
];

@NgModule({
  imports: [RouterModule.forRoot(appRoutes, {preloadingStrategy: PreloadAllModules})],
  exports: [RouterModule]
}) …
Run Code Online (Sandbox Code Playgroud)

routing angular

8
推荐指数
3
解决办法
6840
查看次数

Angular 5 中的 Karma 测试失败:Http 失败响应

应用程序组件:

ngOninit(){
    this.http.get('../assets/data/dummy.json').subscribe(result => {
      this.favorites = result;
    });
}
Run Code Online (Sandbox Code Playgroud)

测试名称:AppComponent 应在 h1 标记中呈现标题

Karma 消息:失败:http://localhost:9876/assets/data/dummy.json的 Http 失败响应:404 Not Found

如果我在 get 方法中将 json 的绝对路径设置为http://localhost:4200/assets/data/dummy.json,则错误消失

unit-testing karma-jasmine angular5

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

FormGroup 获取字段值:TypeError:无法读取未定义的属性“get”

我正在尝试对“passwordConfirm”字段进行验证,但出现一个奇怪的错误:ERROR TypeError: Cannot read property 'get' of undefined 这是我的代码:

loginForm: FormGroup;


ngOnInit(){
    this.loginForm = new FormGroup({
      'email': new FormControl(null, [Validators.required, Validators.email]),
      'password': new FormControl(null, Validators.required),
      'passwordConfirm': new FormControl(null, [Validators.required, this.checkIfMatchingPasswords.bind(this)]),
    });
}



checkIfMatchingPasswords() {
    return this.loginForm.get('password').value === this.loginForm.get('passwordConfirm').value ? null : { notSame: true} // error
  }
Run Code Online (Sandbox Code Playgroud)

angular-validation angular angular-forms

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

在 angular 6 中使用 toPromise 的正确方法

我正在尝试从多个 http 请求中检索数据,我决定避免嵌套 subscribe()。我只想以异步等待风格编写代码。

const diagnostics = this.http.get(url, {params: params}).toPromise()
console.log(diagnostics);
Run Code Online (Sandbox Code Playgroud)

但我明白了:

// ZoneAwarePromise {__zone_symbol__state: null, __zone_symbol__value: Array(0)}
Run Code Online (Sandbox Code Playgroud)

我不知道如何处理以提取数据。

有没有办法避免回调?

.then(res => {}).catch()
Run Code Online (Sandbox Code Playgroud)

javascript observable rxjs angular angular6

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

如何在角度5中将标题设置为HttpHeaders

我试图弄清楚如何处理HttpHeaders上的标头,以通过HttpClient将它们用于http请求.

const headers = new HttpHeaders();
headers.append('foo', 'bar');
headers.set('foo', 'bar');

console.log(headers.get('foo')) // null
Run Code Online (Sandbox Code Playgroud)

它只能这样工作:

const headers = new HttpHeaders().set('foo', 'bar');
console.log(headers.get('foo')) // bar
Run Code Online (Sandbox Code Playgroud)

有没有一种特殊的方法来添加标题?或者这是一个错误?

xmlhttprequest http-headers angular angular5

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