如何绑定本地存储数据以存储sencha touch 2

时间:2012-06-11 11:25:33

标签: sencha-touch-2

//In view i have created one list with item tpl. below is the code
{
 xtype:'list',
 id:'userReviewList',
 title:'User Review',
 store:'UserReviewStore',
 height:300,
 itemTpl:'<div >{Comment}</div>' + '<div >{Rating}</div>' + '<div >{ReviewId}</div>'
}

//我正在为数据部分中的硬编码值创建模型。

Ext.define('AppName.store.UserReviewStore',{
    extend:'Ext.data.Store',
    id:'reviewStore',
    config:{

        fileds:[
            {name:'Comment',type:'string'},
            {name:'Rating', type:'int'},
            {name:'ReviewId',tyep:'int'}
        ]
    },

    data: [
        { Comment: 'nice', Rating: 5, ReviewId: 1 },
        { Comment: 'cool', Rating: 4, ReviewId: 2 },
        { Comment: 'awesome', Rating: 3, ReviewId: 3 }
    ]

})

//我可以在列表视图中显示数据,但我需要使用本地存储数据在列表中显示。 Bellow是我获取本地存储数据的代码,我的同事在应用程序启动时存储,所以现在我必须从本地存储中检索数据并需要绑定到商店

var retrievedObject = localStorage.getItem('testObject');//getting local storage
var jsonObj = Ext.decode(retrievedObject);//decoding

在此解码后,我将获得一个值列表,如

var list = jsonObj.userReviewList 

我需要绑定此列表来存储如何执行此操作。我应该写逻辑来绑定到商店

1 个答案:

答案 0 :(得分:0)

在激活,显示或初始化列表时在控制器中。一些代码可以帮助您理解我的意思:

    Ext.define('MyApp.controller.Main', {
      extend: 'Ext.app.Controller',  
      config: {
        refs: {
          myList: '#userReviewList'
        },
        control: {
          myList: {
            activate: 'onMyListActivate'
          },    
        }  
      },   
      onMyListActivate: function(me) {
        var retrievedObject = localStorage.getItem('testObject');//getting local storage
        var jsonObj = Ext.decode(retrievedObject);//decoding
        var list = jsonObj.userReviewList 
        me.getStore().setData(list);   
      }
  });