从零开始学习Sencha Touch MVC应用之五
<!-- VIEWS -->
< type="text/java" src="/app/views/Viewport.js"></>
< type="text/java" src="/app/views/home/HomeIndexView.js"></>
在HomeIndexView.js中添加下面的内容:
App.views.HomeIndex = Ext.extend(Ext.Panel, {
html: "<h3>A Lover's Complaint</h3>" +
"<h4>a poem by</h4>" +
"<h3>William Shakespeare</h3>" +
"<p>From off a hill whose concave womb reworded</br>" +
"A plaintful story from a sist'ring vale,</br>" +
"My spirits t'attend this double voice accorded,</br>" +
"And down I laid to list the sad-tuned tale,</br>" +
"Ere long espied a fickle maid full pale,</br>" +
"Tearing of papers, breaking rings atwain,</br>" +
"Storming her world with sorrow's wind and rain.</br>" +
"Upon her head a platted hive of straw,</br>" +
"Which fortified her visage from the sun,</br>" +
"Whereon the thought might think sometime it saw</br>" +
"The carcase of a beauty spent and done.</br>" +
"Time had not scythed all that youth begun,</br>" +
"Nor youth all quit, but spite of heaven's fell rage</br>" +
"Some beauty peeped through lattice of seared age.</p>" +
"<p>Oft did she heave her napkin to her eyne,</br>" +
"Which on it had conceited characters,</br>" +
"Laund'ring the silken figures in the brine</br>" +
"That seasoned woe had pelleted in tears,</br>" +
"And often reading what contents it bears;</br>" +
"As often shrieking undistinguished woe</br>" +
"In clamours of all size, both high and low.</p>",
});
Ext.reg('HomeIndex', App.views.HomeIndex);
HomeIndexView利用html的属性(html property),在那里我们添加了一些内容在视图中,Ext.reg这个功能为我们的这个类注册了一个xtype。
从控制器重勾画视图
打开HomeController.js,并针对索引action()进行如下的变更:
// index action
index: ()
{
if ( ! this.indexView)
{
this.indexView = this.render({
xtype: 'HomeIndex',
});
}
this.application.viewport.setActiveItem(this.indexView);
},
第一步我们需要测试就是是否视图类已经被建立起来了,如果没有被建立,我们要建立一个用控制器描述渲染的一个视图实例,并分配给相应的变量,通过传递渲染功能函数,用一个注册登记xtype的对象作为其一个属性。
当我们已经有了一个视图实例,我们把它以参数的形式传递给视图窗口(viewport)的setActiveItem功能函数,这个功能函数将把视图作为视图窗口的子类。刷新的浏览器,你将看到索引视图是如何展示在屏幕上,并且附带从左至右的滑动动画效果(记住在我们的视图窗口中设定cardSwitchAnimation属性)。