我正在编写一个基于 dojox.mobile 框架的应用程序。我正在使用dojo 1.9。该应用程序的某些视图非常相似,并且有很多共同点,因此我想创建一个通用视图并将其扩展为专门化它。
鉴于每个视图都有一个控制器,我尝试创建一个父控制器(这是通过 define 函数定义的模块),然后尝试扩展它,但没有成功。
我正在做的是创建一个 GeneralController.js,如下所示:
define(["dojo/_base/declare",
"dojo/_base/lang",
"dojo/on"],
function(declare,lang, on){
return declare("AppControllers/GeneralController",[],{
init: function(){
//do something in GeneralController
},
beforeActivate: function(){
//...
}
})
}
);
和一个 View1.js 控制器,如下所示:
define(["dojo/_base/declare",
"dojo/_base/lang",
"dojo/on",
"AppControllers/GeneralController"],
function(declare,lang, on, general){
return declare(general,{
init: function(){
//do something in this View1.js controller
this.inherited();//do what was in general
},
beforeActivate: function(){
//...
}
})
}
);
在 config.json 我有:
{
//...
"views":{
//...
"View1":{
"template":"AppTemplates/View1.html",
"controller":"AppControllers/View1.js"
},
//...
}
//...
}
dojo.mobile 框架似乎不接受编写为 dojo 类的视图控制器(通过声明)。如何获得视图控制器的层次结构?