roomsGroup と呼ばれる (モデル内の) 配列コレクションにバインドされたルーム オブジェクトのリストを取得しました。サーバーからそれぞれのサービスを呼び出して、リストから部屋を追加または削除する機能があります。部屋がなくなるまで、すべてが正常に機能し、リストに最初の部屋を追加しています。次に、正しく追加されても (サーバーから返されるルーム オブジェクトの長さは 1)、UI に表示されません。2 つ目の部屋を追加すると、両方が表示されます。
モデル クラス全体 (シングルトン) が Bindable としてマークされているため、public roomsGroup 変数も自動的に Bindable になります。
「部屋の追加」サービスの結果ハンドラーで、サーバーから返された部屋を確認し、部屋と呼ばれるローカル配列コレクションに配置します。次に、model=rooms に Bound roomsGroup を設定します。
model.roomsGroup = rooms;
model.roomsGroup.refresh(); //I tried adding this but it doesn't help.
model.roomsGroup.filterFunction = null; //Also tried this, but it doesn't help.
パネルでは、list コンポーネントのソースが model.roomsGroup 配列コレクションにバインドされています。
<myPanel:RoomsComponent id="roomsList" roomSource="{model.roomsGroup}"
もう 1 つ -- myPanel には、キーアップ時に searchContact() という関数が呼び出されるテキスト ボックスがあります。それが行うことの1つはこれです:
model.roomsGroup.filterFunction = roomFilterFunction;
model.roomsGroup.refresh();
そのため、サービスを呼び出すと、最初に作成された/唯一の部屋が表示されません。しかし、テキストボックスに何かを入力すると、それが表示されます。つまり、フィルター機能によって表示されます。
バインディングが正しく設定されている場合 (そして、リスト内の項目が 0 から 1 になる場合以外のすべての状況で機能するため)、なぜ機能しないのか疑問に思っています。私の一番の推測は、フィルター機能と関係があるということですが、正確にはわかりません。
どんな助けでも感謝します。