2012-04-15 18 views
0

ナビゲーションビューが必要です。私はSencha TouchでJsonPプロキシを使用してリストを作成しようとしています。ここでリストにJsonPプロキシを設定しないでください

は私が今まで試してみました何のサンプルコードスニペットです:

var view = Ext.define('MyApp.view.NavigateView', { 
    extend: 'Ext.navigation.View', 
    xtype:'navigateview', 

    config : { 
     fullscreen:true, 
     styleHtmlContent:true, 
     scrollable:true, 

     items : [ 
      { 
       title:'Navigation', 
       items : [ 
        { 
         xtype:'list', 
         store: { 
          fields : ['title','author'], 
          proxy : { 
           type:'jsonp', 
           url:'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=http://feeds.feedburner.com/SenchaBlog', 
            reader: { 
             type: 'json', 
             rootProperty: 'responseData.feed.entries' 
            } 
          }, 
          autoLoad:true, 
         }, 
         itemTpl:'<div class="contact">{title} <strong>{author}</strong></div>', 
         listeners : { 
          itemtap : function(){ 
           Ext.Msg.alert('Called'); 
           } 
          } 
         } 
       ], 

      } 
     ] 
    } 
}); 

しかし、問題がある、私のリストは、人口取得されていません。リストに項目が表示されていません。

また、コンソールでこのエラーが発生しています。

XMLHttpRequestは、 http://api.tinyhippos.com/xhr_proxy?tinyhippos_apikey=ABC&tinyhippos_rurl=list.php%3F_dc%3D1334462633038%26page%3D1%26start%3D0%26limit%3D25をロードできません。 Origin http://localhostは、Access-Control-Allow-Originによって許可されていません。

誰でも教えてください。私がここで紛失しているものは何ですか?

+0

jsonpが使用されている場所でgoogleapisフィードを使用していないようです。 どこにtinyhippos.comを使用していますか?それはエラーの場所です。 – Dhiraj

+0

いいえ、私はそうは思わない。通常のSencha Touchアプリケーションで使用されていたSencha Touchチャートではなく、Sencha Touchチャートに使用されている 'sencha-touch.css'ファイルを提供したところ、データは表示できましたが、正しく表示されませんでした。したがって、データは到来していますが、適切にレンダリングされません。理由は何でしょうか? – tomjerry

+0

しかし、エラーを見ると、XMLHttpRequestはtinyhipposから何かをロードできないと言いますが、 – Dhiraj

答えて

0

Ext.navigation.Viewオブジェクトにはリストが含まれるExt.Componentオブジェクト(xtypeが定義されていないため、デフォルトで 'component'に設定されています)が含まれています。あなたのリストをあなたのビューのアイテムとして直接置くと、レンダリングされます:

var view = Ext.define('MyApp.view.NavigateView', { 
    extend: 'Ext.navigation.View', 
    xtype: 'navigateview', 

    config : { 
    fullscreen: true, 
    styleHtmlContent: true, 
    scrollable: true, 

    items : [{ 
     title: 'Navigation', 
     xtype: 'list', 
     store: { 
     fields: ['title','author'], 
     proxy: { 
      type: 'jsonp', 
      url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=http://feeds.feedburner.com/SenchaBlog', 
      reader: { 
      type: 'json', 
      rootProperty: 'responseData.feed.entries' 
      } 
     }, 
     autoLoad:true 
     }, 
     itemTpl: '<div class="contact">{title} <strong>{author}</strong></div>' 
    }] 
    } 
}); 

注1:あなたのコードがうまくいかない理由はわかりません。

注2:あなたのコードスニペット

2

クロスドメインでのAJAX要求を使用しているとき、私は同じエラーに直面していたとは関係ありません言及したエラー。 は、あなたがあなたのブラウザでWebセキュリティを無効にすると、アプリケーションが正しく実行される場合は、最初のステップは、識別としてサーバ部分が正しく

をJSONP使用して構成されていることを確認する必要がhere

顔をしている

クロムインストールディレクトリを見つけて を入力し、cmdを入力してください:chrome --disable-web-security