Angulaire 2 balises de modèle-dire de l'objet n'est pas définie
Traitant étrange question Angulaire 2.
Si vous regardez dans le composant ci-dessous, le service retourne un objet analysé, par exemple, je peux console.log
. Vous pouvez voir la sortie collé sous la forme d'un commentaire. Chaque fois que j'essaie d'utiliser l'objet dans la vue, j'obtiens une erreur: EXCEPTION: TypeError: Cannot read property 'subject' of undefined in [{{theData.subject}} in SubjectHomeComponent@2:27]
.
Cela ne fait pas de sens pour moi que je puisse voir l'objet dans la console de l'amende juste. L'exécution de typeof
renvoie également que c'est un objet.
Code Du Composant
import { Component, View } from 'angular2/core'
import { CORE_DIRECTIVES } from 'angular2/common'
import {SubjectService} from "../../services/subject/SubjectService.ts";
import Rx from 'rxjs/Rx'
import { Response } from 'angular2/http'
import {ROUTER_PROVIDERS} from "angular2/router";
import {RouteParams} from "angular2/router";
@Component({
selector: 'subjectHomeComponent',
providers: [SubjectService]
})
@View({
template: `
Hello World <span>{{theData.subject}}</span>
`
})
export class SubjectHomeComponent{
constructor(subjectService: SubjectService, params: RouteParams){
this.id = params.get('id')
subjectService.getSubjectCardsAndNotes(this.id)
.subscribe((res: Response) => {
this.theData = res
console.log(res) //returns {"subject":{"id":1,"name":"Spanish","created_at":"2016-01-23T06:54:50.321Z","updated_at":"2016-01-23T06:54:50.321Z"},"subject_id":1,"notes":[{"id":1,"title":"first note","body":"here i am!","created_at":"2016-01-27T03:10:09.238Z","updated_at":"2016-01-27T03:10:09.238Z","subject_id":1},{"id":2,"title":"first_note","body":"hello _buddy_","created_at":"2016-01-28T20:45:36.044Z","updated_at":"2016-01-28T20:45:36.044Z","subject_id":1}]}
});
}
}
Code de Service (Dont je ne pense pas qu'est pertinent, mais on ne sait jamais)
import {Injectable} from "angular2/core";
import {Http, HTTP_PROVIDERS, Response} from "angular2/http";
import Rx from 'rxjs/Rx'
import 'rxjs/add/operator/map';
@Injectable()
export class SubjectService{
constructor(public http: Http){
}
getSubject(){
return this.http.request('/subjects.json')
.map((response) => response.json())
}
getSubjectCardsAndNotes(id){
return this.http.request(`subjects/${id}/subject_cards_and_notes.json`)
.map((response) => response.json())
}
}
OriginalL'auteur bill-lamin | 2016-01-28
Vous devez vous connecter pour publier un commentaire.
Essayer:
{{theData?.subject}}
ou<span *ngIf="theData">{{theData.subject}}</span>
.Le pourquoi est dans beaucoup de copies de questions:
Angulaire 2: TypeError: l_thing0 est pas défini dans [{{chose.titre}} AppComponent@4:44]
OriginalL'auteur Langley