0

그게 내가 가진거야.
2 가지 모델 : '메모'및 '사용자'. 참고에는 "user"라는 필드가있어 "1 명의 사용자에게 많은 메모"를 보냅니다. 데이터는 미라지에서 가져온 것입니다.템플릿에서 관련 모델을 사용할 수 없습니다 (EmberJS)

참고 모델 :

export default DS.Model.extend({ 
    subject: DS.attr(), 
    message: DS.attr(), 
    user: DS.belongsTo('user'), 
    created_at: DS.attr(), 
    updated_at: DS.attr(), 
}); 

사용자 모델 :

export default DS.Model.extend({ 
    username: DS.attr(), 
    email: DS.attr(), 
    notes: DS.hasMany('note'), 
}); 

미라지 코드 : (나는 EmberInspector에서 볼 수 있듯이) 사용자 모델이 검색됩니다

let notes = [ 
    { 
     id: 1, 
     type: 'note', 
     attributes: { 
      subject: 'Test 1', 
      message: 'tttttttttttttttttttttttt', 
      user_id: 1, 
      'created-at': '2017-03-10 15:04:22', 
      'updated-at': '2017-03-10 15:04:22', 
     } 
    }, 
    { 
     id: 2, 
     type: 'note', 
     attributes: { 
      subject: 'Test 2', 
      message: 'klakljadlfkjhasdflij', 
      user_id: 1, 
      'created-at': '2017-02-10 15:04:22', 
      'updated-at': '2017-02-10 15:04:22', 
     } 
    } 
]; 

let users = [ 
    { 
     id: 1, 
     type: 'user', 
     attributes: { 
      username: 'user', 
      email: '[email protected]', 
     } 
    } 
]; 

this.get('/notes/:id', function (db, request) { 
    let note = notes.find((note) => parseInt(request.params.id) === note.id); 
    let result = { 
     data: note 
    }; 
    if (request.queryParams.include === 'user') { 
     result.included = [users.find((user) => parseInt(note.attributes.user_id) === user.id)]; 
    } 
    return result; 
}); 

.
{{model.user.username}} 템플릿을 사용할 때 빈 출력이 있습니다.
{{log model.user}}을 사용할 때 비어있는 '사용자'모델이 있습니다.

필자는 메모 목록을 작성할 때 '주의'모델이 '사용자'모델없이 조금 빨리 검색된다는 사실과 관련이 있다고 생각합니다.

도움 주셔서 감사합니다.

+0

어떤 시리얼 라이저를 사용하고 있습니까? – Lux

+0

@Lux, JSONAPISerializer – Viktor

+0

중요한지는 모르겠지만 RESTSerializer를 개발의 다음 단계 중 하나로 시도 할 것입니다. – Viktor

답변

1

귀하의 문제는 JSONAPISerializer을 사용하지만 응답이 JSONAPI를 준수하지 않는다는 것입니다.

{ 
    data: { 
     id: 1, 
     type: 'note', 
     attributes: { 
      subject: 'Test 1', 
      message: 'tttttttttttttttttttttttt', 
      'created-at': '2017-03-10 15:04:22', 
      'updated-at': '2017-03-10 15:04:22', 
     }, 
     relationships: { 
      user: { 
       data: { 
        type: 'user' 
        id: '1' 
       } 
      } 
     } 
    } 
} 

을 그리고 그는 id1으로 user를로드하십시오 JSONAPI이 기대됩니다.

하지만 당신의 반응은 이것이다 :

{ 
    data: { 
     id: 1, 
     type: 'note', 
     attributes: { 
      subject: 'Test 1', 
      message: 'tttttttttttttttttttttttt', 
      user_id: 1, 
      'created-at': '2017-03-10 15:04:22', 
      'updated-at': '2017-03-10 15:04:22', 
     } 
    } 
} 

그래서 ember-data 사용자가없는이 쪽지를 생각한다. 필요한 응답을 이해하려면 JSONAPI를 읽으십시오.