Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular TypeError:无法读取属性';滑雪比赛';未定义的_Angular_Typescript_Angular Reactive Forms - Fatal编程技术网

Angular TypeError:无法读取属性';滑雪比赛';未定义的

Angular TypeError:无法读取属性';滑雪比赛';未定义的,angular,typescript,angular-reactive-forms,Angular,Typescript,Angular Reactive Forms,我看到我的属性是未定义的,因此我得到了这个错误,但我不确定我需要在这里修复什么。我想使用angular的*hasPermission指令,为此,我需要将权限放在命名权限数组中。类似于权限:['can_read','can_write']我正试图初始化我的表单,它必须正确键入。我不确定我到底在哪里犯了错误,非常感谢任何帮助。这是我的密码 export class AddMemberComponent extends AppBaseComponent implements OnInit { pu

我看到我的属性是未定义的,因此我得到了这个错误,但我不确定我需要在这里修复什么。我想使用angular的*hasPermission指令,为此,我需要将权限放在命名权限数组中。类似于
权限:['can_read','can_write']
我正试图初始化我的表单,它必须正确键入。我不确定我到底在哪里犯了错误,非常感谢任何帮助。这是我的密码

export class AddMemberComponent extends AppBaseComponent implements OnInit {
  public activeRoute: string;
  private userId: string;
  private userData: Customer;
  public userDetailsForm: FormGroup;
  public permission: {
    skipTracing: { permissions: [] };
    affiliates: { permissions: [] };
    integrations: { permissions: [] };
  } = null;
  public timeZoneList: TimeZone[] = TIMEZONE;
  public roles = [];
  public isFormLoaded = false;

  constructor(
    private inj: Injector,
    private route: ActivatedRoute,
    private teamService: TeamService
  ) {
    super(inj);
    this.route.url.subscribe((routeParams) => {
      this.activeRoute = routeParams[1].path;
      if (this.activeRoute === 'edit') {
        this.navigationState.breadCrums = [
          new BreadCrumb('Settings', USER_NAVIGATION_LINKS.settings),
          new BreadCrumb('Team', USER_NAVIGATION_LINKS.team),
          new BreadCrumb('Edit'),
        ];
      } else {
        this.navigationState.breadCrums = [
          new BreadCrumb('Settings', USER_NAVIGATION_LINKS.settings),
          new BreadCrumb('Team', USER_NAVIGATION_LINKS.team),
          new BreadCrumb('Add'),
        ];
      }
    });
    this.navigationService.updateNavigationState(this.navigationState);
  }

  /**
   * @ngdoc method
   * @description
   * A lifecycle hook that is called after Angular has
   * initialized all data-bound properties of a directive.
   * @returns void
   */
  public ngOnInit(): void {
    this.route.url.subscribe((routeParams) => {
      this.blockUI.startLoader();
      this.activeRoute = routeParams[1].path;
      if (this.activeRoute === 'edit') {
        this.route.paramMap.subscribe((params) => {
          this.userId = params.get('id');
          this.getUserDetails(this.userId);
        });
      } else {
        this.initForm();
        this.blockUI.stopLoader();
      }
    });
  }

  /**
   * @ngdoc method
   * @description
   * init from with validation
   */
  private initForm() {
    this.userDetailsForm = this.formBuilder.group(
      {
        memberFirstName: [
          '',
          ValidationUtil.requiredNonSpace,
          ValidationUtil.onlyAlphabets,
        ],
        memberLastName: [
          '',
          ValidationUtil.requiredNonSpace,
          ValidationUtil.onlyAlphabets,
        ],
        memberEmail: [
          '',
          [ValidationUtil.requiredNonSpace, ValidationUtil.validateEmail],
        ],
        memberMobileNumber: [
          '',
          [
            ValidationUtil.requiredNonSpace,
            Validators.minLength(10),
            Validators.maxLength(10),
          ],
        ],
        memberPassword: [''],
        memberConfirmPassword: [''],
        timezone: ['', ValidationUtil.requiredNonSpace],
        randomPassword: [true],
        sendEmail: [true],
        isActive: [true],
        selectAll: [false],
        skipTracing: this.initPermissions(
          // Receiving error here
          this.permission.skipTracing.permissions,
          'skipTracing'
        ),
        affiliates: this.initPermissions(
          this.permission.affiliates.permissions,
          'affiliates'
        ),
        integrations: this.initPermissions(
          this.permission.integrations.permissions,
          'integrations'
        ),
      },
      {
        validator: ValidationUtil.MustMatch(
          'memberPassword',
          'memberConfirmPassword'
        ),
      }
    );

    if (this.activeRoute === 'edit') {
      this.prepareFormWithData();
    }

    this.isFormLoaded = true;
  }
}

您可以使用空数组初始化权限:

公共权限={
skipTracing:{权限:[]},
附属机构:{权限:[]},
集成:{权限:[]}
};
或者,可以在函数调用中使用空数组作为回退值:

skipTracing:this.init权限(
此.permission?.skipTracing.permissions???[],
“滑雪比赛”
),
附属公司:this.init权限(
此.permission?.affiliates.permissions???[],
“附属公司”
),
集成:this.initPermissions(
此.permission?.integrations.permissions???[],
“集成”
),