大きな画像の正しいホットスポットに画像をドラッグする必要がある小さなゲームがある場合。
小さな画像は containerView 内にあり、ホットスポットも ContainerView です。ホットスポットに画像をドロップすると、ドラッグ アンド ドロップ mixin で次のコードを使用して、画像を dom に移動します。
Player.Droppable = Ember.Mixin.create({
drop: function(event) {
//get the view that was dragged
var viewId = event.originalEvent.dataTransfer.getData('Text');
var view = Ember.View.views[viewId];
//log the parent-view: App.AnswerListView
console.log(view.get('parentView').constructor);
//detach the view from the original containerView
var parentView = view.get('parentView');
parentView.removeObject(view);
//attach it to the hot-spot-containerview
this.addObject(view);
//logging this gives a different result: App.HotspotView
console.log(view.get('parentView').constructor);
event.preventDefault();
return false;
}
});
ドラッグしているビューは App.AnswerView です。私がドキュメントから期待しているのは、 AnswerView の関数parentViewDidChangeがトリガーされることですが、それは起こりません:
App.AnswerView = Ember.View.extend(App.Draggable, {
templateName: "answer",
classNameBindings: [':answer', 'this.content.isSelected:selected'],
click: function(evt){
this.get('controller').send('answerClicked', this.content);
},
parentViewDidChange: function(){
this.get('controller').send('answerMoved', this.content);
},
});
ドキュメントは言う:parentViewプロパティが変更されたときに呼び出されます。私の場合は変更されています。これはバグですか、それとも何か不足していますか?
ティア