Tôi dường như đang gặp sự cố khi cập nhật các đối tượng trong Hợp kim Titanium Appcelerator,Hợp kim Titan: Truy cập giao diện người dùng từ các bộ điều khiển khác nhau?
Tôi về cơ bản muốn có thể thêm hàng trong bảng vào một bộ điều khiển/chế độ xem khác mà tôi hiện đang ở .... . hy vọng dưới đây sẽ mô tả tốt hơn này: s
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();
}
item_list.xml
<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?
}
Có ai biết đi xung quanh này?
Cảm ơn bạn đã đọc :)
Tuyệt vời! cảm ơn rất nhiều Josiah, hoạt động hoàn hảo :) – David
Tôi thích câu trả lời này, nhưng tôi cũng tò mò là một cách "Model-View-Controller" hơn để làm điều này. Giả sử 'Basket' là một Model hoặc một Collection và tôi muốn đồng bộ tự động với một máy chủ. Các sự kiện cấp ứng dụng sẽ vẫn là một giải pháp tốt? – Brad
Sự kiện cấp ứng dụng có thể kích hoạt sự kiện đồng bộ hóa toàn cầu mà "mô hình" đã thay đổi, điều này sẽ thông báo cho từng bộ điều khiển mà mô hình đã thay đổi và sau đó cập nhật chế độ xem của nó. Vì vậy, một số khái niệm tương tự áp dụng. Mặc dù "sự kiện cấp ứng dụng" có thể được thay thế bằng sự kiện Backbone trong bộ sưu tập giỏ. –