Я думаю, вы поняли, что-то не так с Моделью, Модель - это просто определение Модели данных, представьте, что это определение строки на стороне клиента, давайте рассмотрим пример:
У нас на бэкэнде есть таблица для заказов, мы можем представить ее на внешнем интерфейсе с помощью модели, например:
var orders = Ext.define('Orders'. {
extend: 'Ext.data.Model',
fields:['id', 'user_id', 'qty', 'item_ordered'],
proxy: {
type:' ajax',
url: 'orders.php',
reader: {
type: 'json',
root: 'orders'
}
}
});
Это действительно простая модель, теперь, если я хочу получить только один заказ за раз, я могу использовать модель для этого, например:
var order = Ext.ModelManager.getModel('Orders');
order.load(1); //This will load the order with id = 1
Но, с другой стороны, если я хочу получить все заказы (например, для пользователя), я сделаю это с Store
, магазины управляют коллекцией моделей, мы можем сказать, что это вид Таблица с набором строк, состоящих из структурированных данных, которые вы можете определить в своем Model
, позволяет определить простое хранилище, которое использует нашу модель:
var ordersStore = Ext.create('Ext.data.Store', {
model:'Orders',
proxy: {
type: 'ajax',
url : 'orders.php',
reader: {
type: 'json',
root: 'orders'
}
}
});
/* This should get us our orders for the user with id=1 and also answer your
question about how to get a user with name = 'John', you can do it in the same way */
ordersStore.load({params:{user_id:1}});
Речь идет о получении данных, как вы обрабатываете на своем сервере PHP, ну, я считаю, что это другой вопрос.
О «Моделе», проходящем через «Прокси», что верно при добавлении или обновлении ej:
order.set('qty', 4);
order.save(); // This will pass the 'Order' Model to the server.
Или:
var newOrder = Ext.create('Order', {user_id:1, qty: 2, item_ordered: 66});
newOrder.save(); // This will pass the 'Order' Model to the server too.
Здесь вы также можете получить дополнительную информацию:
Ext Store документы
Ext Модель документов
Надеюсь, это поможет вам начать работу с моделями и магазинами.