【问题标题】:Angular create empty modelAngular创建空模型
【发布时间】:2019-03-23 11:07:30
【问题描述】:

***编辑,因为我认为我没有正确解释这一点,因为我缺乏使用 Angular 的经验。

我有一个带有表单的组件,用于更新用户(在本例中为子组件),我想在另一条路由上单独使用相同的组件来创建新用户,但我不能似乎弄清楚如何在“添加新用户”实例上使用我的用户模型。当任一屏幕加载时,我的控制台中都会出现此错误:

TypeError: "_co.user is undefined"

我确定这意味着我的用户模型未定义/初始化,但我尝试过但似乎无法弄清楚。在它被用作子组件来更新用户的路线上,表单在我选择用户后工作正常,这会填充表单,我可以编辑信息或删除用户。这是我的 component.ts 文件的一部分,我试图创建一个新的空白用户模型,但这似乎也不起作用:

用户详情组件

import { Component, OnInit, Input } from  '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Location } from '@angular/common';

import { User } from '../user';
import { UserService } from '../user.service';

import { RouterModule, Router, Routes } from '@angular/router';

@Component({
selector: 'app-user-detail',
templateUrl: './user-detail.component.html',
styleUrls: [ './user-detail.component.css' ]
})

export class UserDetailComponent implements OnInit {

@Input() user: User;

users: User[];

constructor(
private route: ActivatedRoute,
private userService: UserService,
private location: Location,
private router: Router
) {}

谁能指出我正确的方向?我一直在尝试解决这个问题,但不知道我需要做什么。

【问题讨论】:

    标签: angular binding model


    【解决方案1】:

    我认为初始化用户实例的地方是错误的你在这里定义用户变量@Input() user: User;然后重新定义它user = new User();,我认为这段代码导致

    重复标识符错误

    试试这个@Input() user: User = new User(); 并删除第二个用户定义 如果您将用户实例正确传递给 UserDetailComponent,您可以执行此方法并避免使用

    用户未定义错误

    或任何其他与未定义用户变量有关的错误

    【讨论】:

    • 我更新了我原来的帖子,虽然我理解你的建议,但我认为我的解释不正确。
    • @angler 我再次阅读了您的问题,如果我错了,请纠正我您想使用相同的组件进行更新并创建具有不同路线的用户吗?
    • 有点,我想将它用作更新/删除的子组件,并单独在单独的路线上添加新用户。
    猜你喜欢
    • 2017-05-18
    • 2019-06-12
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    相关资源
    最近更新 更多