1
我是新角2,並沒有找到任何正確的答案發布類似的問題。屬性'訂閱'不存在類型'無效'在角度cli
我正在獲取屬性'訂閱'不存在類型'void'在角度cli中。我嘗試從rxjs導入訂閱,但沒有找到該庫。
請幫助解決這個問題。請在下面找到我的服務和組件代碼,我將其稱爲該服務。
// *******************************
// login.service.ts
// *******************************
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/throw';
@Injectable()
export class LoginService {
constructor(private http: Http) { }
getLoginData(){
this.http.get('./json/login.json')
.map((result: Response) => result.json())
.catch(this.getError);
}
private getError(error: Response): Observable<any>{
console.log(error);
return Observable.throw(error.json() || 'Server Issue');
}
}
// *******************************
// login.component.ts
// *******************************
import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { LoginService } from '../login.service';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css'],
providers: [LoginService]
})
export class LoginComponent {
usernameModel: string;
passwordModel: string;
validLogin: Boolean;
constructor(private router: Router, private loginService: LoginService) { }
homeNav(){
if(this.usernameModel === 'jay' && this.passwordModel === 'Jay'){
this.validLogin = true;
this.router.navigate(['/home']);
}
else{
this.validLogin = false;
console.log('Login Error');
}
this.loginService.getLoginData()
.subscribe(
data => console.log(data)
);
}
}
謝謝。現在我發現了一個新的問題,'Module not found:Error:Can not resolve'rxjs/add/operator/throw''....我檢查了rxjs/operator文件夾,我找不到throw.js ...我是否需要在外部添加它? – Jay
正確的導入是'import'rxjs/add/observable/throw''(所以可以觀察到,而不是操作符)。但這些東西都是不必要的,我相信你唯一需要的就是'map'導入 – PierreDuc
謝謝你的工作 – Jay