在此我们将要继续构建我们的Sencha Touch MVC app应用工程,这次我们将探索控制器action的不同调用方式。
控制器action的调用方式将按下面三种方式:
l 利用路由作为href属性的定位标记的一个值的方式:<a href=”#route”>Some Route</a>
l 利用Ext.dispatch 和 Ext.redirect 功能: Ext.redirect(‘route’)
l 直接调用控制器的action:Ext.ControllerManager.get(‘SomeController’).someAction()或同一控制器的this.someAction()。
首先,我们在HomeController.js中添加另外的action,命名为about
// about action
()
{
if ( ! this.aboutView)
{
this.aboutView = this.render({
xtype: 'HomeAbout',
});
}
this.application.viewport.setActiveItem(this.aboutView);
},
现在我们来创建这个action的视图(app/views/home/HomeAboutView.js):
App.views.HomeAbout = Ext.extend(Ext.Panel, {
html: '<h2>About</h2> <p>MvcTouch is a Sencha Touch demo application.</p>',
scroll: 'vertical',
styleHtmlContent: true,
style: 'background: #d8efed',
});
Ext.reg('HomeAbout', App.views.HomeAbout);
为了使界面效果更好,我们再建立一个样式表文件(res/css/style.css),并且文件中要有以下内容:
a.menu-item {
display: block;
padding: 1em;
font-weight: bold;
text-decoration: none;
text-transform: uppercase;
border-radius: 10px;
box-shadow: 1px 1px 4px #768395;
background: -webkit-linear-gradient(top, #fff, #ddd);
}
注:不要忘记把视图和样式表包含进index.html文件中。