2012-05-25 4 views
-1

Im ищет учебник или пример для sencha touch 2 MVC STORE, который занимается связью Jsonp и получает данные оттуда, ТОЛЬКО MVC BASE. Мне нужно узнать, как взаимодействуют Store, Model, Controller и View друг с другом в структуре на основе MVC. любое предложение ? Мне нужно понять, как получать и работать с jsonp-ссылками и данными, спасибоSencha touch 2 MVC Store

ответ

1

Загрузите sencha touch 2 и найдите пример oreilly. В этом примере в панели «Описание» панели «Объявления» загружаются данные из хранилища (тип читателя - jsonp). Также вы должны проверить другие примеры, такие как touchtweets, geocongress, navigationview и т. Д. Я думаю, что это лучший способ для начала.

+0

Sposibo bolshoe drug :) eto Sencha zakalibala menya –

1

Я нашел, что в документации есть много хороших руководств по пониманию структуры MVC sencha touch, а также каждой отдельной темы, такой как магазины и модели.

MVC в глубине часть 1: http://docs.sencha.com/touch/2-0/#!/video/mvc-part-1

MVC в глубине часть 2: http://docs.sencha.com/touch/2-0/#!/video/mvc-part-2

Документах также иметь направляющую секцию, которая идет через все, что вам нужно знать тоже. http://docs.sencha.com/touch/2-0/#!/guide

1

Простой пример модели, сохранять и просматривать с помощью JSONP

Как JSONP выглядит.

callback({"Message":"Success","Post":[{"id":"35","UserId":"faisalkhalid690","Content":"lol","Time":"2013-12-03 05:28:15"},{"id":"50","UserId":"faisalkhalid","Content":"asdfasdfasdf","Time":"2013-12-03 05:52:27"},{"id":"51","UserId":"faisalkhalid","Content":"sadfasdfasdf","Time":"2013-12-03 05:52:38"},{"id":"52","UserId":"faisalkhalid","Content":"holloa","Time":"2013-12-03 05:52:50"},{"id":"70","UserId":"faisalkhalid690","Content":"hello","Time":"2013-12-04 23:22:52"}]}); 

Модель для этого JSONP.

Ext.define('talkbag.model.Comments', { 
    extend: 'Ext.data.Model', 

    config: { 
      idProperty: 'id', 
     fields: [ 
      { name: 'id', type: 'auto' }, 
      { name: 'UserId', type: 'auto' }, 
      { name: 'Content', type: 'auto' }, 
      { name: 'Time', type: 'auto' } 

     ] 
    } 
}); 

Магазин:

Ext.define('talkbag.store.Comments', { 
extend:'Ext.data.Store', 

storeId:'Comments', 
config:{ 
    autoLoad: true, 
     model:'talkbag.model.Comments', 
     proxy: { 
      type: 'jsonp', 
      url : 'http://www.litemake.com/ViewComments.php?Pid='+talkbag.User.PostId, 
      reader: { 
       type: 'json', 
       rootProperty: 'Post' 
      } 
     } 
    } 

}); 

Вид:

Ext.define('talkbag.view.ViewPost.ViewCommentDetail', { 

xtype:'ViewCommentDetail', 
extend:'Ext.dataview.List', 
config:{ 
    store:'Comments', 
itemTpl:'<table><tr><td width="80px"><table align="center"><tr><td align="center"><img src="http://www.litemake.com/getPic.php?userId={UserId}" heigth="30px" width="30px"/></td></tr><tr><td style="font-size:0.6em">{UserId}</td></tr></table></td><td style="padding-left:20px"><table><tr><td style="font-size:0.7em; padding:0px 0px 5px 0px">{Content}</td></tr><tr><td style="font-size:0.5em">{Time}</td></tr></table></td></tr></table>' 

} 

}); 
1

Если вам нужна информация о JSONP - стороне сервера, то есть смотреть на the Sencha Touch API (JSONP)

Здесь вы можете найти методы serveride для обработки вашего запроса JSONP для общих языков программирования на стороне сервера, таких как PHP, Java или ASP.net.

Для PHP это будет выглядеть следующим образом:

// From your Sencha JSONP Store, you will get a callback parameter which we 
// need to put in our $callback var, for later usage. 
$callback = $_REQUEST['callback']; 


// Create the output object. 
// this could also be a database output, but remember to  
// convert it into an array 
$output = array('a' => 'Apple', 'b' => 'Banana'); 

// start output 
// this section switches between a jsonp callback or usual json output. 
if ($callback) { 
    header('Content-Type: text/javascript'); 
    echo $callback . '(' . json_encode($output) . ');'; 
} else { 
    header('Content-Type: application/x-json'); 
    echo json_encode($output); 
} 

Как Фейсал Халид уже сказал, вывод будет выглядеть ...

myCallbackName({ 
    "message":"success", 
    "total":2, 
    "data":[ 
      {"prename":"Bob","lastname":"example"}, 
      {"prename":"John","lastname":"Beard"} 
      ] 
}); 

... где вы определили myCallbackName как имя обратного вызова в приложении sencha (конфигурация магазина).

Конфиг называется callbackKey и устанавливается в обратного вызова по умолчанию.