属性 类型不存在.. 错误。这里有什么问题?
Property doesn't exist on type.. error. What is wrong here?
我在这里发帖希望你们中的一个能帮助我。我的编程知识很少,我被要求在 Angular 和 ASP.NET Core MVC 3 中构建一个简单的电子商务网站。所以下面的代码应该不会记录用户如果 he/she 已登录但尝试通过 url 访问管理员页面,则退出。这是我的教授告诉我们使用的一些代码,但出于某种原因它对我不起作用。他使用的是 Angular 的旧版本,因此例如,他使用 .map() 的地方,我必须使用 .pipe(map()) 而他使用 response.json().role 的地方我做了只是 response.role。我的 IDE 在 response.authenticated 和 response.role
附近的客户端登录方法中向我显示以下错误
Property 'authenticated' (or 'role') does not exist on type 'boolean'.
我怀疑问题出在客户端登录方法上返回多个参数,或者是由 .pipe(map()) 引起的。老实说,我在这里一无所知。我会很感激任何指导
登录:
login(): Observable<any> {
this.authenticated = false;
return this.repo.login(this.name, this.password).pipe(
map(response => {
if (response.authenticated == 'true') {
this.authenticated = true;
this.password = null;
this.role = response.role;
if (this.role == 'Administrator') {
this.router.navigateByUrl("/admin/overview");
this.admin = true;
}
else {
this.router.navigateByUrl("/");
}
}
return this.authenticated;
}),
catchError(e => {
this.authenticated = false;
return of(false);
})
);
}
服务器端登录:
[HttpPost("/api/account/login")]
public async Task<IActionResult> Login([FromBody] LoginViewModel creds) {
if (ModelState.IsValid && await DoLogin(creds)) {
IdentityUser user = await userManager.FindByNameAsync(creds.Name);
if (await userManager.IsInRoleAsync(user, "Administrator"))
return Ok(new { authenticated = "true", role = "Administrator"} );
else
return Ok( new { authenticated = "true", role = "NoAdministrator" });
}
return BadRequest();
}
错误很明显。 response
不是访问其成员的对象(验证)。
这个 returns 布尔值:
this.repo.login(this.name, this.password);
将您的条件更改为:
response == 'true'
或
根据您的后端,响应是一个对象。将 this.repo.login
return 类型更改为任意。
我在这里发帖希望你们中的一个能帮助我。我的编程知识很少,我被要求在 Angular 和 ASP.NET Core MVC 3 中构建一个简单的电子商务网站。所以下面的代码应该不会记录用户如果 he/she 已登录但尝试通过 url 访问管理员页面,则退出。这是我的教授告诉我们使用的一些代码,但出于某种原因它对我不起作用。他使用的是 Angular 的旧版本,因此例如,他使用 .map() 的地方,我必须使用 .pipe(map()) 而他使用 response.json().role 的地方我做了只是 response.role。我的 IDE 在 response.authenticated 和 response.role
附近的客户端登录方法中向我显示以下错误Property 'authenticated' (or 'role') does not exist on type 'boolean'.
我怀疑问题出在客户端登录方法上返回多个参数,或者是由 .pipe(map()) 引起的。老实说,我在这里一无所知。我会很感激任何指导
登录:
login(): Observable<any> {
this.authenticated = false;
return this.repo.login(this.name, this.password).pipe(
map(response => {
if (response.authenticated == 'true') {
this.authenticated = true;
this.password = null;
this.role = response.role;
if (this.role == 'Administrator') {
this.router.navigateByUrl("/admin/overview");
this.admin = true;
}
else {
this.router.navigateByUrl("/");
}
}
return this.authenticated;
}),
catchError(e => {
this.authenticated = false;
return of(false);
})
);
}
服务器端登录:
[HttpPost("/api/account/login")]
public async Task<IActionResult> Login([FromBody] LoginViewModel creds) {
if (ModelState.IsValid && await DoLogin(creds)) {
IdentityUser user = await userManager.FindByNameAsync(creds.Name);
if (await userManager.IsInRoleAsync(user, "Administrator"))
return Ok(new { authenticated = "true", role = "Administrator"} );
else
return Ok( new { authenticated = "true", role = "NoAdministrator" });
}
return BadRequest();
}
错误很明显。 response
不是访问其成员的对象(验证)。
这个 returns 布尔值:
this.repo.login(this.name, this.password);
将您的条件更改为:
response == 'true'
或
根据您的后端,响应是一个对象。将 this.repo.login
return 类型更改为任意。