2017-02-17 42 views
2

我對Angular2相當陌生,我試圖編輯元素並將其添加到我的數據庫中。爲了編輯它們,我配置了elements/:id,這樣就可以關閉數據庫並將元素拉回。你可以更新它,一切都很好。然而,當我嘗試添加時,理論上我可以有完全相同的形式,但我不會有id,因爲這是由後端分配的,所以我不知道我是否超載了element.detail.component,我應該創建一個新的一個只是爲了添加。Angular2重用路線進行編輯/添加

我還想過添加一個像elements/addnew這樣的新路線,並給它優先於上面的一個,或者只是有一個完整的新路線。

更新時間:

我至今路由:

{ path: 'elements', component: ElementsComponent }, 
{ path: 'elements/:id', component: ElementDetailComponent }, 

如果我使用的查詢字符串的選項,我怎麼可能讓一個新的元素之間的區別,並把所有的元素按照上述路線?

回答

1

有很多方法可以使用相同的組件

1日法

使用查詢字符串實現這種傳遞id的值,如果這個查詢字符串爲空,則只需加載與空的形式值並顯示提交表單按鈕

第二方法

或者可以簡單地傳遞id作爲0和掃描對於此值,如果它是0,則加載具有提交按鈕別的顯示用戶的詳細信息的空形式

第三方法 使用路由作爲

{路徑:「元素」,分量:myComponent的},

{路徑: '分子/:ID',組分:myComponent的},

和myComponent的掃描PARAM:如果ID它存在,則僅加載用戶數據否則裝入空形式

+0

我喜歡第一種和第三種方法,但是如何解決與拉回所有元素的主要路線可能的衝突?我用當前路由更新了問題,我有 –

+0

只是掃描param(:id),如果它不是未定義的,那麼只調用函數來拉取所有元素 –

+0

this.route.params.subscribe(params => { if( params ['id']; //(+)將字符串'id'轉換爲數字 pullElement(this.id); } }) ; –