2012-06-16 115 views
1

我剛剛開始使用Sencha Touch 2.0。我在閱讀XML數據時遇到問題。我從下載的基本「入門」應用程序開始,它工作正常,這意味着我已經正確完成了設置。現在我已經對一些簡單的XML進行了一些修改,但是我無法在屏幕上看到任何數據。以下是我的代碼。請幫我解決一下這個。 - 這裏有app.js文件的內容 -Sencha Touch讀取XML數據

Ext.Loader.setPath({ 
    'Ext': 'lib/touch/src' 
}); 

Ext.define('User', { 
    extend: 'Ext.data.Model', 
    config: { 
     fields: ['id', 'name', 'email'] 
    } 
}); 

var mystore = Ext.create('Ext.data.Store', { 
    model: 'User', 
    autoLoad: true, 
    proxy: { 
     type: 'ajax', 
     url : 'userData.xml', 
     reader: { 
      type: 'xml', 
      rootProperty: 'users', 
      record: 'user' 
     } 
    } 
}); 

Ext.application({ 
    name: 'Sencha', 

    launch: function() { 
     //The whole app UI lives in this tab panel 
     Ext.Viewport.add({ 
      xtype: 'tabpanel', 
      fullscreen: true, 
      tabBarPosition: 'bottom', 
      items: [ 
       // This is the home page, just some simple html 
       { 
        title: 'Home', 
        iconCls: 'home', 
        cls: 'home', 
        scrollable: true, 
        html: [ 
         '<img height=260 src="http://staging.sencha.com/img/sencha.png" />', 
         '<h1>Welcome to Sencha Touch</h1>', 
         "<p>Building the Getting Started app</p>", 
         '<h2>Sencha Touch (2.0.0)</h2>' 
        ].join("") 
       }, 


       { 
        xtype: 'list', 
        title: 'Events', 
        iconCls: 'star', 
        itemTpl: '{id}',      
        store: mystore      
       } 


      ] 
     }); 
    } 
}); 

的XML是在相同的位置,因爲這app.js文件。請注意,我沒有安裝任何服務器。我只是對app.js進行更改,然後在Chrome瀏覽器中打開「index.html」。

這是XML。它是一樣的煎茶Docs.-給出的

<?xml version="1.0" encoding="UTF-8"?> 
<users> 
<user> 
    <id>112</id> 
    <name>Ed Spencer</name> 
    <email>[email protected]</email> 
</user> 
<user> 
    <id>248</id> 
    <name>Abe Elias</name> 
    <email>[email protected]</email> 
</user> 
</users> 

這裏是更改後,我的代碼 -

Ext.Loader.setPath({ 
    'Ext': 'lib/touch/src' 
}); 


Ext.regModel('Personal', { 
    fields : [ 
     'id', 
      {name: 'name', type: 'string'}, 
      {name: 'email', type: 'string'} 
    ] 
}); 


Ext.application({ 
    name: 'Sencha', 

    launch: function() { 
     //The whole app UI lives in this tab panel 
     Ext.Viewport.add({ 
      xtype: 'tabpanel', 
      fullscreen: true, 
      tabBarPosition: 'bottom', 
      items: [ 
       // This is the home page, just some simple html             

      { 
       xtype : 'selectfield', 
       name : 'user', 
       label : 'Users', 
       store : new Ext.data.Store({ 
          model  : 'Personal', 
          autoLoad : true, 
          proxy  : { 
           type : 'ajax', 
           url  : 'userData.xml', 
           reader : { 
            type : 'xml', 
            root : 'users' 
           } 
          } 
         }), 
       valueField : 'name', 
       displayField : 'name' 
      } 


      ] 
     }); 
    } 
}); 
+0

現在感到沮喪!。從早上開始嘗試,但沒有運氣......文檔和指南也非常簡短,沒有太多幫助.... Adob​​e Flex文檔更好,並且非常容易理解....: - ((( – GordanWebb

+0

*** Very重要 - 在sencha論壇上,有個人問我控制檯說什麼 - 這是它說的 - XMLHttpRequest無法加載file:/// E:/sencha%20trials/userData.xml?_dc = 1340003241745&page = 1&start = 0&limit = 25。 Origin-null是Access-Control-Allow-Origin不允許的......我想這就是問題所在。現在檢查如何解決這個問題...如果你知道解決方案,請在這裏發帖n ..感謝:) – GordanWebb

+0

你好,我的問題解決了...... Chrome不允許通過Ajax進行本地文件訪問......我安裝了Web服務器XAMPP..and並執行了代碼......並且它工作......我很高興。 ..保持聯繫... :) – GordanWebb

回答

0

嘿@GordanWebb試試這個從XML文件中的數據顯示,

Ext.regModel('Personal', { 
    fields : [ 
     'id', 
      {name: 'name', type: 'string'}, 
      {name: 'email', type: 'string'} 
    ] 
}), { 
     scroll : 'vertical', 
     items : [ 
      { 
       xtype : 'selectfield', 
       name : 'user', 
       label : 'Users', 
       store : new Ext.data.Store({ 
          model  : 'Personal', 
          autoLoad : true, 
          proxy  : { 
           type : 'ajax', 
           url  : 'userData.xml', 
           reader : { 
            type : 'xml', 
            root : 'users' 
           } 
          } 
         }), 
       valueField : 'name', 
       displayField : 'name', 
      } 
     ] 
    } 

此示例顯示selectfield元素Sencha上的數據。我希望這有幫助。 :)

+0

謝謝你的迴應....但在這些改變後,應用程序不加載...我是全新的Sencha ....我用我的替換我的模型定義和在位列表中添加了yur selectField代碼....是否正確? ...我甚至嘗試將「存儲」定義作爲列表組件的一部分,而不是在外部聲明它,這是我上面所做的......但沒有進展......問題是我無法弄清楚我做錯了什麼....我已經通過了stackoverflow上的XML Sencha問題以及.. – GordanWebb

+0

mmmno我認爲你做錯了什麼。請告訴我你是怎麼做的。 – hekomobile

+0

你好..我已經發布了編輯中的變化......請看上面......再次感謝您的回覆...... :) – GordanWebb

0

你只需要使用一個Web服務器(或者的EasyPHP WAMP)(XAMP在Linux和MacOS),並訪問你的應用程序拋出本地主機/ yourAppDirectory,一切都會好起來