我是Angular的新手并尝试制作一个小应用程序。
我提到'object' does not contain such a member 回答,但我没有从那里得到我的解决方案。
profile.component.ts
import { Component, OnInit } from '@angular/core';
import { AuthService } from '../../services/auth.service';
import { Router } from '@angular/router';
@Component({
selector: 'app-profile',
templateUrl: './profile.component.html',
styleUrls: ['./profile.component.css']
})
export class ProfileComponent implements OnInit {
user: Object;
constructor(private authService: AuthService, private roter: Router) {}
ngOnInit() {
this.authService.getProfile().subscribe(
profile => {
this.user = profile.user;
},
err => {
console.log(err);
return false;
}
);
}
}
profile.component.html
<div *ngIf="user">
<h2 class="page-header">
{{ user.name }}
</h2>
<ul class="list-group">
<li class="list-group-item">
Username: {{ user.username }}
</li>
<li class="list-group-item">
Email: {{ user.email }}
</li>
</ul>
</div>
Visual Studio代码显示了这一点 的错误:
[Angular]标识符“用户名”未定义。 '对象'不包含这样的成员
ProfileComponent的属性用户
答案 0 :(得分:1)
您已在user
类中将ProfileComponent
定义为Object
type.wich没有定义Typescript Model
。因此,Typescript不知道User
的结构宾语。
所以你创建了这样的模型。
interface User{
username : String;
password: ...
....
}
然后将其用作类似user : User
问题将会解决。
答案 1 :(得分:1)
要么改变
user: Object;
通过
user: any;
在你的profile.component.ts中肯定会有效,因为最初你已经将它声明为对象,所以在运行或构建应用程序时,由于访问为user.username而导致编译失败。 要么将类型更改为任何,要么创建具有必需属性的接口或类型,并将此类型分配给用户 例如: profile.component.ts:
interface userObject {
username:string,
password:string
}
以
方式访问export class ProfileComponent implements OnInit {
user : userObject;
}
答案 2 :(得分:1)
定义对象时,它没有firstName或lastName。所以当从ui访问它时会显示错误。所以首先初始化如下所示。然后问题就会解决。
让user = {firstName:“”,lastName:“”};
代码:
public function create()
{
//print_r($_POST);
$role_name=$_POST['name'];
$create_product=NULL;
$edit_product=NULL;
$view_product=NULL;
if(isset($_POST['create_products']))
{
$create_product=$_POST['create_products'];
}
if(isset($_POST['view_products']))
{
$view_product=$_POST['view_products'];
}
if(isset($_POST['edit_products']))
{
$edit_product=$_POST['edit_products'];
}
echo $create_product; echo $view_product; echo $edit_product;
dd(Role::findByName($role_name));
答案 3 :(得分:0)
Object
指的是内置对象构造函数,它显然没有属性username
。由于您要将user
的类型设置为Object
并尝试访问不存在的属性username
,因此显示错误。
如果您想定义自己的类型,请参阅this。