2012-04-15 6 views
0

Ich möchte eine Navigationsansicht haben. Ich versuche, die Liste in Sencha Touch mit einem JsonP-Proxy zu füllen.Liste, die nicht mit einem JsonP-Proxy gefüllt wird

Hier ist der Beispielcode-Ausschnitt von dem, was ich bis jetzt versucht:

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'); 
           } 
          } 
         } 
       ], 

      } 
     ] 
    } 
}); 

Aber das Problem ist, ist meine Liste nicht aufgefüllt zu werden. Keine Einträge werden in der Liste angezeigt.

Auch ich bekomme ständig diesen Fehler auf der Konsole.

XMLHttpRequest nicht http://api.tinyhippos.com/xhr_proxy?tinyhippos_apikey=ABC&tinyhippos_rurl=list.php%3F_dc%3D1334462633038%26page%3D1%26start%3D0%26limit%3D25 laden. Ursprung http://localhost ist nicht zulässig von Access-Control-Allow-Origin.

Wer bitte führen? Alles, was ich hier vermisse?

+0

sieht aus wie Ihr Fehler nicht mit googleapis feeds wo jsonp verwendet wird. Wo verwenden Sie tinyhippos.com, das sollte Ihr Fehlerort sein. – Dhiraj

+0

Nein, ich denke nicht. Als ich die 'sencha-touch.css' Datei, die für Sencha Touch-Charts verwendet wurde, anstelle der für normale Sencha-Touch-Anwendungen verwendeten Datei zur Verfügung stellte, konnte ich die Daten sehen, wurde aber nicht richtig gerendert. Daten kommen also, werden aber nicht richtig gerendert. Was könnte der Grund sein? – tomjerry

+0

aber wenn Sie den Fehler betrachten, heißt es XMLHttpRequest kann etwas von tinyhippos nicht laden, – Dhiraj

Antwort

0

Ihr Ext.navigation.View Objekt enthält ein Objekt Ext.Component (xtype nicht definiert als 'Komponente'), das Ihre Liste enthält. Wenn Sie Ihre Liste direkt als Element Ihrer Ansicht setzen, wird es wiedergegeben werden:

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>' 
    }] 
    } 
}); 

Hinweis 1: Nicht sicher, warum Ihr Code funktioniert nicht.

Hinweis 2: Der Fehler Ihr erwähnt wird Ihr Code-Snippet nicht im Zusammenhang

2

Ich war der gleiche Fehler zeigt, wenn AJAX-Request in Cross-Domain verwenden. einen Blick here

Sie müssen sicherstellen, dass der Server Teil richtig

mit JSONP konfiguriert ist

als ein erster Schritt identifizieren, wenn Ihre Anwendung ordnungsgemäß ausgeführt wird, wenn Sie Web-Sicherheit in Ihrem Browser

deaktivieren Lokalisieren Sie Ihr Chrome-Installationsverzeichnis dann geben Sie Ihren cmd ein: chrome --disable-web-security