1.一个view对应一个controller,当view显示时,相应的在controller中的动作就会执行(controller中refs中的面板的名对应view的xtype),写法如:
view~
/*
* form to enter the location data
*/
Ext.require(['Ext.form.Panel','Ext.form.FieldSet']);
Ext
.define("StateGrid.view.Message.New",{
extend: 'Ext.Panel',
xtype: 'qtMsgPanel',
config : {
fullscreen: true,
items: [
{
xtype: 'fieldset',
title: '消息推送',
defaults: {
labelWidth: '20%'
},
items: [
{
flex: 1,
html: '标题',
},
{
flex: 1,
id: 'msgTitle',
html: '标题',
},
{
flex: 1,
html: '消息内容',
},
{
flex: 5,
id: 'msgContent',
},{
flex: 1,
xtype: 'button',
text: '发布',
id: 'publish',
}
]
}
]
},
});
controller~
/*
* photo controller
*/
Ext.define("StateGrid.controller.MessageController",
{
extend : "StateGrid.controller.ApplicationController",
config: {
refs: {
msgNew : "qtMsgPanel",
publishBtn: 'button[id=publish]'
},
control: {
msgNew: {
initialize : 'onMessageNewInit',
activate: 'onMessaegActivate'
},
publishBtn: {
tap: 'onPublishTap',
}
}
},
onMessaegActivate: function(){
doconnect("task");
},
onPublishTap: function(){
pub("task/ok", "you win~", 2);
},
onMessageNewInit: function(){
if(window.localStorage.getItem("topic") != null){
var title = Ext.ComponentManager.get('msgTitle');
var content = Ext.ComponentManager.get('msgContent');
title.setHtml(window.localStorage.getItem("topic"));
console.log("topic ~~~~" + window.localStorage.getItem("topic") );
content.setHtml(window.localStorage.getItem("msg"));
}
}
}
);
initialize:页面初始化执行的动作
tap:点击按钮时执行的动作
activate:view中的部件都初始化,而且显示完全后执行的动作
2.localstorage用法
key->content
保存:window.localStorage.getItem(key, content)
获取:window.localStorage.getItem(key)
3.在app.js中注册controller,view,model,storage,否则可能出现一些问题~