내 문제를 설명하기 위해 게시물 및 댓글을 사용하겠습니다. 내 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와 충돌했습니다. 그것을 제거하면 잘 작동하는 위의 코드를 만들었습니다.
안녕하세요 Toran! 미안하지만, 실제로 당신이 제안한 것처럼 createRecord 함수를 만들기 바로 전에 선언하고 있지만 물건을 복사 할 때 놓친 것이 틀림 없습니다. 그래서 당신이 맞습니다. 나는 내 질문에 그것을 고쳐야한다. 또한, this.get ('content') === this.get ('model')은 true를 반환하므로 동일합니다. 다른 단서가 있습니까? 좀 봐 주셔서 감사합니다! – Oscar
위의 내용을 보여주지는 않았지만 관계가 포함되어 있고 비동기 적이 아닌지 확신합니까? –
위와 같이 비동기 "설정"이 잘못 되었기 때문에 나는 묻습니다. https://github.com/emberjs/data/issues/1542 –