Bah*_*ani 9 angular2-routing angular-components router-outlet angular
我正在尝试使用此技术拦截输入属性更改与setter将一些数据从父组件传递到子组件,并在更改值时调用子组件中的方法.我的问题是<router-link>,当我尝试使用以下方法传递数据时,子组件被绑定到父组件:
parent_component.html:
<router-outlet [some_value] = "some_value"></router-outlet>
Run Code Online (Sandbox Code Playgroud)
其中some_value是我试图从父传递到子传递的参数.
parent_component.ts:
public some_value: string;
Run Code Online (Sandbox Code Playgroud)
和
parent_component.ts:
@Input()
public set some_vale(number : string){
this._some_value = number;
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误
未处理的Promise拒绝:模板解析错误:无法绑定到'some_value',因为它不是'router-outlet'的已知属性.
我究竟做错了什么?使用a时,将数据从父组件传递到子组件的正确方法是<router-outlet>什么?
在此先感谢,任何帮助表示赞赏.
import {Injectable, EventEmitter} from "@angular/core";
@Injectable()
export class DataService {
onGetData: EventEmitter = new EventEmitter();
getData() {
this.http.post(...params).map(res => {
this.onGetData.emit(res.json());
})
}
Run Code Online (Sandbox Code Playgroud)
import {Component} from '@angular/core';
import {DataService} from "../services/data.service";
@Component()
export class MyComponent {
constructor(private DataService:DataService) {
this.DataService.onGetData.subscribe(res => {
(from service on .emit() )
})
}
//To send data to all subscribers from current component
sendData() {
this.DataService.onGetData.emit(--NEW DATA--);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7395 次 |
| 最近记录: |