2013-06-10 1 views
0

Я начинаю узнавать о Sencha Touch 2. Итак, у меня было много проблем, чтобы спросить! ^^ Давайте исследуем это. Теперь у меня есть JSON данных, как:Event SelectField Sencha Touch 2.1 и использование в нем магазина и модели. (в Sencha Architect 2)

{ результат: "УСПЕХ", национальные: [ "Афганистан", "Албания", "Албания", "Алжир", «Американская Самоа», "Андорра" ] }

Затем я загрузить его из URL: нации. php-файл. Как я могу загрузить его до Мое поле выбора. ??????

Делитесь и поддержите меня.! Благодаря :).

ответ

2

Я не знаю, как сделать это в Сенче Architect 2 (я не использую его) .. но все же

Вместо того чтобы задавать вопросы без попытки (я имею в виду вы не отправляли пытался кода здесь) , Лучше начните с документации Sencha Touch.

Во всяком случае, вы можете сделать это следующим образом

Модель

Ext.define('AppName.model.countries', { 
    extend : 'Ext.data.Model', 

    config: { 
     fields: [ 
       {name: 'name', convert: function(value, record) { 
           return record.raw; 
       }} 
      ], 
    } 
}); 

магазин

var myStore = Ext.create("Ext.data.ArrayStore", { 
    model : 'AppName.model.countries', 
    proxy: { 
    type: "ajax", 
    url : "nation.php", 
    reader: { 
     type: 'json', 
     rootProperty : function(data) { 
      return data.national; 
     } 
    }   
    }, 
    autoLoad: true 
}); 

Выбрать поле в View

Ext.create('Ext.form.Panel', { 
    fullscreen: true, 
    items: [{ 
     xtype: 'selectfield', 
     store: myStore , 
     valueField:'name', 
     displayField:'name' 
    }] 
}); 
+0

Спасибо за ваш ответ! Я буду следовать этому сообщению, чтобы использовать его для Sencha Architect (S.A). Потому что S.A помогает мне узнать Sench Touch дальше. ^^ Теперь, я новичок в этой области. Я попробую прочитать больше документа. –

+0

@ ChuBao.Dev Добро пожаловать, и если ответ поможет вам принять его. – Viswa

+0

Хорошо, но я использую Sencha Architect, поэтому у него есть некоторые отличия: rootProperty: function (data) { return data.national; } –

1

с поддержкой Viswa. :) Я нашел эту проблему - XMLHttpRequest не может загрузить. Происхождение не допускается по ошибке Access-Control-Allow-Origin (безопасность политики браузера). И документ Sencha Touch говорят: «Прокси-сервер JsonP полезен, когда вам нужно загружать данные из домена, отличного от того, на котором работает ваше приложение. Если ваше приложение работает на http://domainA.com, он не может использовать Ajax для загрузки своих данных с http://domainB.com, потому что запросы Ajax междоменное запрещены браузером

"Кроме того, все мы должны сделать, это -„Выполнить все апи в вашем веб-сервере“и код формата Follow JSONP в:. (в PHP)

$callback = $_REQUEST['callback'];// check callbackkey 

// Create the output object. 
$output = array('a' => 'Apple', 'b' => 'Banana');// output data. 

//start output 
if ($callback) { 
    header('Content-Type: text/javascript'); 
    echo $callback . '(' . json_encode($output) . ');'; 
} else { 
    header('Content-Type: application/x-json'); 
    echo json_encode($output); 
} 

Если. Использование Сенча Прикосновение 2.1, Вы можете использовать:

Ext.data.JsonP.request({ 
     url: 'http://otherdomain/svn_visaapi/trunk/api/visa_api.php/test_json', 
     callbackKey: 'callback', 
     success: function(result) { 
      console.log(result); 
      //Your success function here... 
     } 
    }); 

- Если с помощью Сенча Architect, вы можете использовать Store.proxy.JsonP для вызова API. - Подробнее документ Sencha Touch 2.1, чтобы увидеть это.

+0

+1 для вашего успеха и публикации вашей работы здесь – Viswa

+0

Спасибо, Viswa.! –

 Смежные вопросы

  • Нет связанных вопросов^_^