2016-01-21 20 views
5

Trong ứng dụng của tôi, tôi có Trang chủ làm thành phần gốc và một thành phần chung khác có tên là danh sách mà tôi đang hiển thị bên trong Trang chủ.Góc 2: cách chuyển thuộc tính cho thành phần con?

Tôi muốn chuyển dữ liệu dưới dạng thuộc tính vào thành phần danh sách của tôi đến từ XMLHttpRequest.

home.ts

import {Component} from 'angular2/core'; 
import {DashboardService} from '../../services/dashboard'; 
import {List} from '../contact/list'; 

@Component({ 
    selector: 'home', 
    template: 
    ` 
    <h3>Home</h3> 
    <List type="{{type}}"></List> 
    ` 
    providers: [DashboardService], 
    directives: [List], 
}) 
export class Home { 

    private _type: any; 

    constructor(private _dashboardService: DashboardService) { 
    this._dashboardService.typeToDisplay() 
     .subscribe((type) => { 
      this._type = type; 
     }); 
    } 
} 

List.ts

@Component({ 
    selector: 'List', 
    properties: ['type'], 
    template: ` 
     <h2>list</h3> 
    `, 
    providers: [DashboardService] 
}) 
export class List { 

    private type: any; 

    constructor(@Attribute('type') type:string) { 
    this.type = type; 
    console.log(type); 
    } 
} 

Tôi nhận được dữ liệu từ chuỗi typeToDisplay() phương pháp yêu cầu Http nó & gán gõ biến. nhưng khi tôi thông qua tài sản để danh sách thành phần tôi nhận được null trong List constructor.

Tôi đã thử quá nhưng tôi đang nhận được "loại" chuỗi cùng một cách.

Hy vọng câu hỏi của tôi là Xóa.

Trả lời

3

Cú pháp này

<List type="{{type}}"></List> 

là thiết lập một không sở hữu một thuộc tính.
Để thiết lập một thuộc tính sử dụng hoặc

<List attr.type="{{type}}"></List> 

hoặc

<List [attr.type]="type"></List> 

Nếu bạn chỉ muốn có giá trị có sẵn trong List sử dụng

@Input() type: any; 

thay vì tiêm thuộc tính.
Bằng cách này giá trị chưa sẵn có bên trong hàm tạo, chỉ trong ngOnInit() trở lên.

+0

** Cảm ơn bạn! Tôi quên tài liệu ** –

+1

Tài liệu đang được tiến hành. Góc vẫn đang hoạt động. Viết tài liệu trước khi phần mềm được phát triển thường không bay ;-). Đồng thời kiểm tra mã tài liệu trong mã nguồn. Rất nhiều lớp học có tài liệu khá toàn diện và liên kết đến các ví dụ đang chạy trong Plunker. –

Các vấn đề liên quan