Title rewritten as: My div or its data is not rendering correctly with the ngFor directive
P粉450744515
P粉450744515 2023-09-06 21:15:27
0
1
351

I created a service in my component that I subscribe to, but when I use ngFor, the div doesn't render at all.

Component.TS file

import { Component, OnInit } from '@angular/core'; import {FormBuilder, Validators} from '@angular/forms'; import { PlansService } from 'src/app/services/plans.service'; interface JobType { value: string; viewValue: string; } interface WorkEnv { value: string; viewValue: string; } @Component({ selector: 'app-post-job', templateUrl: './post-job.component.html', styleUrls: ['./post-job.component.css'] }) export class PostJobComponent implements OnInit { jobTypes: JobType[] = [ {value: 'type-0', viewValue: '全职'}, {value: 'type-1', viewValue: '兼职'}, {value: 'type-2', viewValue: '自由职业'}, ]; workEnvs: WorkEnv[] = [ {value: 'type-0', viewValue: '远程'}, {value: 'type-1', viewValue: '混合'}, {value: 'type-2', viewValue: '现场'}, ]; jobForm = this.fb.group({ jobTitle: this.fb.group({ title: ['', [Validators.required, Validators.minLength(2), Validators.pattern('^[_A-z0-9]*((-|\s)*[_A-z0-9])*$')]], jobType: ['', [Validators.required]] }), }) plans: any; constructor(private fb: FormBuilder, private service:PlansService) { } ngOnInit(): void { this.service.getPlans() .subscribe(response => { this.plans = response; console.log(response); }); } // Getter method to access formcontrols get myForm() { return this.jobForm.controls; } // Submit Registration Form // onSubmit() { // this.submitted = true; // if(!this.jobForm.valid) { // alert('Please fill all the required fields to create a super hero!') // } else { // console.log(this.jobForm.value) // } // } }

Component.html file

{{plan.title}}

The data shows up in my console.log but doesn't render at all on the card. Please help, thank you!

I tried adding a dummy array in the ts file and printing it to the console log, but it still doesn't render in the div.

P粉450744515
P粉450744515

reply all (1)
P粉785522400

You can load your plan asynchronously.

  1. Create an observable objectpublic plans$: Observable

  2. Assign your subscriptionthis.plans$ = this.service.getPlans();

  3. Conditionally Rendering in Your HTML

 
{{ plan | json }}
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!