angular2-universal-starter projesini kullanıyorum.Angular2-universal-starter'de dinamik bileşen yükleyici ile çalışmayan veri-bağlayıcı
Bu yüzden, bir nesneyi @Input kullanarak bir çocuk bileşenine aktarmaya çalışıyordum, ancak düzgün çalışmıyor.
Çocuk bileşenini yüklemek için dinamik bileşen yükleyicisini kullandım ve nesneyi alt bileşenlere aktarmak istiyorum. Sadece senin yapmak gerekir sanırım
app.component.ts
import {Component, Directive, Renderer, DynamicComponentLoader, ElementRef} from 'angular2/core';
import {Http} from 'angular2/http';
import {headingComponent} from './heading.component';
@Directive({
selector: '[x-large]'
})
export class XLarge {
constructor(element: ElementRef, renderer: Renderer) {
// we must interact with the dom through Renderer for webworker/server to see the changes
renderer.setElementStyle(element.nativeElement, 'fontSize', 'x-large');
}
}
@Component({
selector: 'app',
directives: [
XLarge
],
template: `
<div>
<div>
<span x-large>Hello, {{ user.name }}!</span>
</div>
<icici-heading [user]="user"></icici-heading>
</div>
`
})
export class App {
public user;
constructor(dcl: DynamicComponentLoader, elementRef: ElementRef) {
dcl.loadNextToLocation(headingComponent, elementRef);
}
ngOnInit(){
this.user = { "id": 11, "name": "Mr. Nice" };
}
}
heading.component.ts
import {Component, OnInit,Input} from 'angular2/core';
@Component({
selector: 'icici-heading',
template: `
<div>
<!--{{user.name}}-->this is not working
{{name}}
</div>
`
})
export class headingComponent implements OnInit {
@Input() user;
name: string;
constructor() { }
ngOnInit() {
this.name="heading is rendered";
}
}
başlık değerler geçirmek gerektiğinde
Elvis veya güvenli-navigasyon operatörü sadece
.name
değerlendirir yanıltıcıdır. Bağımlılık enjeksiyonu, yapıcı parametreleri için neyin geçtiği ile ilgilidir. Sorunuz veri bağlama ile ilgili. –@ GünterZöchbauer sugget bunun için uygun bir başlık lütfen –
Tarayıcı konsolunda bir hata mesajı alıyor musunuz? –