2017-01-16 53 views
0

我具有以下所示的3個組分:爲什麼添加這個組件打破了很多東西? (大量的東西將被下文定義)

新聞feed.component

用戶活動-item.component

用戶activity-list.component

這兩個用戶活動組件都位於news-feed組件的子目錄中。此外,用戶活動項目只是用戶活動列表的成員。

一切與此工作,直到我的組件選擇CG-用戶活動列表添加到新聞feed.component.html文件。

一旦我添加該行,我導航到的路線將顯示news-feed.component.html中的文本,但活動列表從不顯示。另外,出於某種原因,URL欄中的路線很快顯示,就像它成功地將其放到頁面中一樣,然後返回到前一個路線(但保留在我打算的頁面上)。

我對Angular2非常陌生,所以我希望有人能立即發現我的錯誤,但我一直在看這幾個小時,並且一直沒有看到問題。

這裏是我的文件:

新聞feed.component.ts

import { Component, OnInit } from '@angular/core'; 
import { UserActivityListComponent } from './user-activity-list/user-activity-list.component'; 

@Component({ 
    selector: 'cg-news-feed', 
    templateUrl: './news-feed.component.html', 
    styleUrls: ['./news-feed.component.css'] 
}) 
export class NewsFeedComponent implements OnInit { 

    constructor() { } 

    ngOnInit() { 
    } 

} 

新聞feed.component.html

<div class="pure-u-1"> 
    Activity Test Text 
    <cg-user-activity-list></cg-user-activity-list> 
</div> 

用戶activity.item .component.ts

import { Component, OnInit, Input } from '@angular/core'; 
import { UserActivity } from '../user-activity'; 

@Component({ 
    selector: 'cg-user-activity-item', 
    templateUrl: './user-activity-item.component.html' 
}) 
export class UserActivityItemComponent implements OnInit { 
    @Input() userActivity: UserActivity; 

    constructor() { } 

    ngOnInit() { 
    } 

} 

用戶activity.item.component.html

<div class="pure-u-1"> 
    testing user activity item component 
    <h4>{{userActivity.name}}</h4> 
    <p>{{userActivity.id}}</p> 
</div> 

用戶activity.list.component.ts

import { Component, OnInit } from '@angular/core'; 
import { UserActivity } from '../user-activity'; 
//import { UserActivityItemComponent } from './user-activity-item.component'; 

@Component({ 
    selector: 'cg-user-activity-list', 
    templateUrl: './user-activity-list.component.html' 
}) 
export class UserActivityListComponent implements OnInit { 
    userActivities: UserActivity[] = []; 
    userActivity = new UserActivity('John', '25'); 

    constructor() { } 

    ngOnInit() { 
    } 

} 

用戶activity.list.component .html

<div class="pure-u-1"> 
    testing user activity list component 
    <cg-user-activity-item> [userActivity]="userActivity" </cg-user-activity-item> 
</div> 

如果我需要發佈有關該項目的更多信息,我可以,但它相當大,所以我不能100%確定需要發佈什麼信息才能看到問題。


附加信息。

回答

2

你最後的代碼片。我認爲這是問題。

用戶activity.list.component.html

<div class="pure-u-1"> 
    testing user activity list component 
    <cg-user-activity-item> [userActivity]="userActivity" </cg-user-activity-item> 
</div> 

應該是:

<cg-user-activity-item [userActivity]="userActivity"></cg-user-activity-item> 

我可能是錯的,漂亮很難說什麼是錯的。如果你可以從控制檯添加這個很好的錯誤。

編輯

看來,你的userActivity是尚未加載,請嘗試:

<div class="pure-u-1"> 
    testing user activity item component 
    <h4>{{userActivity?.name}}</h4> 
    <p>{{userActivity?.id}}</p> 
</div> 

或者你也可以添加*ngIf="userActivity"到您的div

+0

我不能相信我沒有」包括控制檯錯誤。我將編輯該問題,並將其添加到最後。這似乎並不是我的問題。 – trueCamelType

+0

您的編輯,修復了路由。我的數據仍然沒有顯示,並且沒有控制檯錯誤。我會將此標記爲正確的答案。我敢打賭,現在我已經有了更簡單的時間來解決這個問題。如果你有任何關於爲什麼沒有顯示userActivity?.name和id的建議,那也是值得讚賞的。 – trueCamelType

+1

我會嘗試用上面發佈的代碼創建一個空白項目並查看。我會告訴你。 – 12seconds