3
//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 }
    ]

})

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

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

在这个解码之后,我会得到一个值列表,比如

var list = jsonObj.userReviewList 

我需要绑定这个列表来存储如何做到这一点。我应该在哪里编写绑定到存储的逻辑

4

1 回答 1

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);   
      }
  });
于 2012-06-11T12:11:25.393 回答