2016-09-07 3 views
0

Ich sah Youtube Video und ich habe versucht, genau so wie das Video auf diesem Link https://www.youtube.com/watch?v=bKWDKmHvF78&index=8&list=PL6gx4Cwl9DGBYxWxJtLi8c6PGjNKGYGZZ tun, aber die ngFor funktioniert überhaupt nicht für mich. wenn ich schreibe mit ngFor es leere Seite anzeigen.ngFor funktioniert nicht eckig 2 und leere Anzeige

//app.component.ts

import {Component} from 'angular2/core'; 
import {Config} from './config.service'; 
import {Video} from './Video'; 
import {PlaylistComponent} from './playlist.component'; 

@Component({ 
    selector: 'my-app', 
    templateUrl: 'app/ts/app.component.html', 
    directives:[PlaylistComponent] 
}) 

export class AppComponent { 
    name="check"; 
    videos:Array<Video>; 
    constructor(){ 
     this.videos=[ 
      new Video(1,"row1","check1","this is our first row"), 
      new Video(1,"row2","check2","this is our second row"), 
     ] 
    } 
} 

//app.component.html

<h1>{{name}}</h1> 
<playlist [videos]="videos"></playlist> 

//main.ts

import {bootstrap} from 'angular2/platform/browser'; 
import {AppComponent} from './app.component'; 

bootstrap(AppComponent); 

//playlist.component. html

<table class="table table-hover"> 
    <thead> 
    <tr> 
     <td>ID</td> 
     <td>Title</td> 
     <td>Description</td> 
    </tr> 
    </thead> 
    <tbody> 
     <tr *ngFor="let v of videos"> 
      <td>{{v.id}}</td> 
      <td>{{v.title}}</td> 
      <td>{{v.desc}}</td> 

     </tr> 
</tbody> 

</table> 

//playlist.component.ts

/** 
* Created by Adir on 9/7/2016. 
*/ 
import {Component} from 'angular2/core'; 
import {Video} from './Video'; 

@Component({ 
    selector:'playlist', 
    templateUrl:'app/ts/playlist.component.html', 
    inputs:['videos'] 
}) 

export class PlaylistComponent{ 
    onSelect(vid:Video){ 
     console.log(JSON.stringify(vid)); 
    } 
} 
+1

Sie benötigen eine Eigenschaft mit @Input() Dekorator, um Videos als Parameter übergeben zu können. – rook

+0

Ich habe diese '/ ** * Erstellt von Adir am 07.09.2016. */ importieren {Komponente} von 'angular2/core'; Importieren Sie {Video} von './Video'; @Component ({ Selektor: 'Playlist', templateUrl: 'app/ts/playlist.component.html', Eingänge: [ 'Videos'] }) Export Klasse PlaylistComponent { onSelect (vid: Video) { Konsole.log (JSON.Stringify (VID)); } } ' –

+0

Sie benötigen keine Eingaben: [video]. Erklären Sie stattdessen @Input() Video; in der Playlist.Komponente. – rook

Antwort

0

die Eingänge von Komponentendefinition entfernen und Eingabeeigenschaft innerhalb der Klasse hinzuzufügen.

+0

Fehler: kann nicht Namen ‚Input‘ –

+0

ich genau, wie dieses Video das finden, da funktioniert es auch https://www.youtube.com/watch?v=bKWDKmHvF78&index=8&list=PL6gx4Cwl9DGBYxWxJtLi8c6PGjNKGYGZZ –

+0

@AdirZoari meine Antwort aktualisiert überprüfen –

Verwandte Themen