子ビュー (UI ウィジェット) のコレクションを反復処理し、アプリから自分自身を削除するように指示する必要があります。すべての childViews がコレクションに存在することを確認しましたが、このコードは一度にいくつかの childViews/widgets でのみ removeIfSelected() を呼び出します:
widgets = container.get('childViews')
widget.removeIfSelected() for widget in widgets
たとえば、3 つのウィジェットがある場合、これが初めて実行されると (削除ボタンを使用)、2 つのウィジェットが削除されます。最後のウィジェットを削除するには、もう一度ボタンをクリックする必要があります。
2 つある場合は、1 つのウィジェットが削除されます。4 つ以上ある場合は、2 つを除くすべてのウィジェットが削除され、最後の 2 つを削除するには、さらに 2 回削除をクリックする必要があります。
私の最初の解決策は、すべてのウィジェットが削除されることを保証するループを 3 回実行することでしたが、これはコード レビューに合格しなかったため、実際の解決策を見つける必要がありました。これが coffeescript の問題なのか、Ember.js の問題なのかはわかりません。ループが完全に実行されるようにするにはどうすればよいですか?