6
私はチタン製のAppcelerator合金のオブジェクトを更新するのに問題があるようです。チタン合金:異なるコントローラからUIにアクセスしていますか?
私は基本的に、現在の別のコントローラ/ビューにあるテーブルにテーブル行を追加できます。 。うまくいけば、以下の優れた本を説明します。■
basket.xml
<Alloy>
<Window id="basketWindow" class="container">
<TableView id="basketTable" />
<Button id="addItemButton" onClick="addItem">Add Item</Button>
</Window>
</Alloy>
basket.js
function addItem()
{
var itemList = Alloy.createController('item_list');
itemList.getView().open();
}
を
<Alloy>
<Window id="itemListWindow" class="container">
<TableView id="itemListTable">
<TableViewRow id="item1" className="item" onClick="addItemToBasket">
Test Item
</TableViewRow>
</TableView>
</Window>
</Alloy>
item_list.js
function addItemToBasket()
{
var row = Ti.UI.createTableViewRow({title: 'Test Item'});
// Here i would ideally want to put something like $.basketTable.append(row);
// But nothing happens, im guessing it cant find $.basketTable as its in a different controller?
}
item_list.xml誰もが離れて、この周りに知っていますか?
おかげさまで、ジョシアは完璧に働きます:) – David
私はこの答えが好きですが、私はまたこれを行うためのより "モデルビューコントローラ"の方法について興味があります。 「Basket」がモデルまたはコレクションであり、サーバーとの自動同期が必要であるとします。アプリレベルのイベントはまだ良い解決策ですか? – Brad
アプリレベルのイベントが「モデル」が変更されたグローバル同期イベントをトリガーする可能性があります。これはモデルが変更されたことを各コントローラに通知し、そのビューを更新します。したがって、同じ概念のいくつかが適用されます。 「アプリレベルイベント」はおそらくバスケットコレクションのバックボーンイベントに置き換えられます。 –