Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Javascript 使用输入将数据获取到组件_Javascript_Angular_Angular2 Directives - Fatal编程技术网

Javascript 使用输入将数据获取到组件

Javascript 使用输入将数据获取到组件,javascript,angular,angular2-directives,Javascript,Angular,Angular2 Directives,如何从一个页面到另一个页面获取数据,但显示错误我是新手 TypeError:无法读取MediaItemComponent中[{mediaItem.id}}中未定义的属性“id” 如何获取数据 first.html <section> <media-item [mediaItem]="firstMediaItem"></media-item> </section> secound.html <h2>{{ mediaItem.id

如何从一个页面到另一个页面获取数据,但显示错误我是新手

TypeError:无法读取MediaItemComponent中[{mediaItem.id}}中未定义的属性“id”

如何获取数据

first.html

<section>
    <media-item [mediaItem]="firstMediaItem"></media-item>
</section>
secound.html

<h2>{{ mediaItem.id }}</h2>
<div>Watched on {{ mediaItem.watchedOn }}</div>
<div>{{ mediaItem.category }}</div>
<div>{{ mediaItem.year }}</div>
first.html

<section>
    <media-item [mediaItem]="firstMediaItem"></media-item>
</section>

first.html

<section>
    <media-item [mediaItem]="firstMediaItem"></media-item>
</section>

文档中说,你应该避免像以前那样重命名@Input()。这就是造成类似问题的原因

要修复组件行为,只需将@Input声明更改为:

secound.ts

import {Component, Input} from 'angular2/core';

@Component({
    selector: 'media-item',
    templateUrl: 'app/media-item.component.html',
    styleUrls: ['app/media-item.component.css']
})
export class MediaItemComponent {
    @Input('mediaItemToWatch') mediaItem;
}
import {Component, Input} from 'angular2/core';

@Component({
    selector: 'media-item',
    templateUrl: 'app/media-item.component.html',
    styleUrls: ['app/media-item.component.css']
})
export class MediaItemComponent {
    @Input() mediaItem; //HERE, do not rename the input
}

文档中说你应该避免像以前那样重命名@Input(),这就是问题的原因

要修复组件行为,只需将@Input声明更改为:

secound.ts

import {Component, Input} from 'angular2/core';

@Component({
    selector: 'media-item',
    templateUrl: 'app/media-item.component.html',
    styleUrls: ['app/media-item.component.css']
})
export class MediaItemComponent {
    @Input('mediaItemToWatch') mediaItem;
}
import {Component, Input} from 'angular2/core';

@Component({
    selector: 'media-item',
    templateUrl: 'app/media-item.component.html',
    styleUrls: ['app/media-item.component.css']
})
export class MediaItemComponent {
    @Input() mediaItem; //HERE, do not rename the input
}