2014-06-13 105 views
1

在構建我的restful api時,我基本上遵循了Ember的RESTAdapter約定。獲取相關模型數據ember.js

我有一個模型post和一個模型tags,一個多對多的關係。由於我只會找到與帖子相關的標籤,我沒有定義相反的帖子。

所以我在後期模型tags: hasMany('tag')中得到了這個,在restful api中它返回了tags: ["1", "2", "3"]等等,就像它假設的那樣。

所以現在我想知道如何在posts/1 url上獲得這些標籤。當我查看商店時,它沒有檢索到任何標籤。我如何訪問標籤數據及其屬性?

App.Tag = DS.Model.extend({ 
    name: attr() 
}); 

App.Post = DS.Model.extend({ 
    active: attr(), 
    name: attr(), 
    organization: attr(), 
    user_id: attr(), 
    submitted_ts: attr(), 
    status: attr(), 
    tags: hasMany('tag') 
}); 

{ 
    "post": { 
    "0": { 
     "id": "1", 
     "active": "A", 
     "name": "This is a test title", 
     "organization": "Stryker", 
     "user_id": "0", 
     "submitted_ts": "1402664380", 
     "status": "finalized" 
    }, 
    "tags": [ 
     "30", 
     "1", 
     "14" 
    ] 
    }, 
    "tags": [ 
    { 
     "id": "30", 
     "type": "asdf", 
     "name": "KNEE", 
     "pivot": { 
     "case_id": "1", 
     "id": "30" 
     } 
    }, 
    { 
     "id": "1", 
     "type": "therapy", 
     "name": "more things", 
     "pivot": { 
     "case_id": "1", 
     "id": "1" 
     } 
    }, 
    { 
     "id": "14", 
     "type": "therapy", 
     "name": "asdfasdf", 
     "pivot": { 
     "case_id": "1", 
     "id": "14" 
     } 
    } 
    ] 
} 

串行器是無關的這一號召

App.SpecialtySerializer = DS.JSONSerializer.extend({ 
    primaryKey: 'specialty_id' 
}); 


App.ApplicationAdapter = DS.RESTAdapter.extend({ 
    namespace: 'api/v1', 
    headers: function() { 
     return { 
      authToken: this.get('auth.authToken') 
     }; 
    }.property("auth.authToken") 
}); 
+0

只需要訪問標記也許我很困惑的你試圖嘗試的是,你試圖獲取標籤異步,還是你想讓他們在同一時間下降? – Kingpin2k

+0

與帖子屬於同一類型。我返回的json就像 '{post:{...}} .....標籤:{...}格式很糟糕,我知道。但基本上這些標籤在帖子的json請求中。 – user1952811

+0

你會爲上面的帖子和標籤顯示你的模型定義,也許會拋出一個json的例子,並且你說你正在使用RESTAdapter,這是否仍然適用? – Kingpin2k

回答

0

,當你有這樣的標籤,你說的標籤信息被灌進與該職位的要求。如果這是不正確的,那麼你就需要標記的標籤,異步

tags: hasMany('tag')

,如果它包括在呼叫後,你做post.get('tags')

+0

我應該在哪裏打這個電話? 'post.get( '標籤')'?它應該在路線中嗎? – user1952811