2014-01-13 3 views
4

내 문제를 설명하기 위해 게시물 및 댓글을 사용하겠습니다. 내 post_controller 내 현재 게시물에 대한 의견에 대한 새 레코드를 만들고 싶습니다. 이것을하기위한 엠버 (ember) 방법은 무엇입니까?EmberJS : 속한 레코드 만들기

이 관계는 다음과 같이 설정 : 내 post_controller 내부

App.Post = DS.Model.extend({ 
    comments: hasMany('comment'), 
}); 

App.Comment = DS.Model.extend({ 
    post: belongsTo('post') 
}); 

내가 기록을 만들려고합니다. catch되지 않은 형식 오류 : 나는이 선언 어떻게 정의되지 않은

의 특성 '게시물을'읽을 수 없습니다

App.PostController = Ember.ObjectController.extend({ 
    ... 
    actions: { 
    createComment: function() { 
     var post = this.get('model'); // Edit: Forgot that I had this declared outside createRecord 
     var comment = this.store.createRecord('comment', { 
     content : "content", 
     post : post // This is where the problem is 
     }); 
    } 
    } 
}); 

그러나, 내가 말하는 오류 : 나는 템플릿에서 트리거되는 액션 안에이 있습니다 관계? 감사.

편집 : 엠 데이터 에러 - 엠 data.js이 함수 내부에서 온다 :

return Ember.computed(function(key, value) { 
    var data = get(this, 'data'), 
     store = get(this, 'store'), belongsTo, typeClass; 

    if (typeof type === 'string') { 
     typeClass = store.modelFor(type); 
    } else { 
     typeClass = type; 
    } 

    if (arguments.length === 2) { 
     Ember.assert("You can only add a '" + type + "' record to this relationship", !value || value instanceof typeClass); 
     return value === undefined ? null : value; 
    } 

    belongsTo = data[key]; // ERROR OCCURS HERE! 

    if (isNone(belongsTo)) { return null; } 

    store.fetchRecord(belongsTo); 

    return belongsTo; 
    }).property('data').meta(meta); 
}; 

EDIT : 문제 해결!

문제는 주어진 주석에 데이터라는 속성을 부여하는 것이 었습니다. 그 속성은 내부 ember와 충돌했습니다. 그것을 제거하면 잘 작동하는 위의 코드를 만들었습니다.

답변

0

당신이 createRecord (ie- var에 주석 위 = 선)

VAR postModel = 썩 ('모델')의 외부에서 게시물을 선언하는 경우;

당신은 문제가 발생 될 수

승 createRecord 범위 내에서 "이"키워드/

업데이트도

, 당신이 썩 ('모델')에 대해 동일한 결과를 얻을 않으며, this.get ('content') (범위 밖에서)?

+0

안녕하세요 Toran! 미안하지만, 실제로 당신이 제안한 것처럼 createRecord 함수를 만들기 바로 전에 선언하고 있지만 물건을 복사 할 때 놓친 것이 틀림 없습니다. 그래서 당신이 맞습니다. 나는 내 질문에 그것을 고쳐야한다. 또한, this.get ('content') === this.get ('model')은 true를 반환하므로 동일합니다. 다른 단서가 있습니까? 좀 봐 주셔서 감사합니다! – Oscar

+0

위의 내용을 보여주지는 않았지만 관계가 포함되어 있고 비동기 적이 아닌지 확신합니까? –

+0

위와 같이 비동기 "설정"이 잘못 되었기 때문에 나는 묻습니다. https://github.com/emberjs/data/issues/1542 –