내가 작업하고있는 앱에는 사용자가 자신과 친구의 이벤트를 볼 수있는 이벤트 페이지가 있으며 인라인 이벤트 작성자를 사용할 수 있습니다 (이벤트를 만들려면 그 동일한 페이지/경로). 좀 더 정확하게하려면 이벤트가 모두로드되고 뉴스 피드 스타일로 표시됩니다. 이제는 완벽하게 작동하지만 문제는 새로운 이벤트 모델을 저장하려고 할 때입니다. 나는 어떤 코드가 이것을 이해하기 쉽게 만들 것이라고 생각한다. 라우트 : 동일한 경로/리소스에서 EmberData 모델을 만들고 표시합니다.
this.resource('newsfeed', function() {
this.route('personal');
this.route('whatever');
});
는
NewsfeedIndexRoute
의 응용 프로그램은 뉴스 피드 /에서
ArrayController
모든 이벤트를 표시
model: function() {
return App.Event.find();
}
있습니다. 그건 잘 작동합니다.
Furthermroe 앱에있는 NewsfeedRoute
및 Controller
뿐만 아니라 이벤트 제작자가 모든 하위 경로에 우리는 다음과 같은 코드가 이벤트 절약에 액세스 할 수 있도록 : 지금 그래서 문제
App.NewsfeedRoute = Ember.Route.extend({
setupController: function(controller){
controller.newRecord();
}
});
App.NewsfeedController = Em.ObjectController.extend({
newRecord: function() {
//The following line works but makes the API 'dirty' and an extra model needs to be created
this.set('content', App.Newsfeed.createRecord({title: "new title"}));
//The next line would be preferred, but overrides the displayed models at /newsfeed
//this.set('content', App.Event.createRecord({title: "new title"}));
},
save: function() {
this.get('model').save();
}
});
을, 내가/newsfeed에 가서 this.set('content', App.Event.createRecord({title: "new title"}));
이라는 줄을 사용하면 newsfeed/index.hbs
템플릿에 표시되는 모든 것을 재정 의하여 하나의 모델로 표시하므로 ('새 제목'만 표시) 그리고 짝수 작성자에게 더 많이 입력하면 표시됩니다. 이것은 분명히 우리가 원하는 행동이 아닙니다. 이상적으로는 어떻게 든 분리되어야하며 서버에 저장되어야합니다. Newsfeed 모델에서 볼 수있는 다른 줄은 해결 방법이며 제대로 작동하지만 POST에서/events 끝점을 사용하기 때문에 주석에 언급 된 것처럼 실제로 해킹 된 것처럼 느껴지며 API를 더러워지게 만듭니다. 요청은 훨씬 더 쉬울 것입니다.
그럼 ember-data로 지금 당장 달성 할 수있는 방법이 있다면 누구나 생각해 볼 수 있습니까?
감사합니다. 훌륭하게 작동합니다. – Markus