Пишу приложение на основе dojox.mobile framework. Я использую додзё 1.9. Некоторые виды приложения действительно похожи и имеют много общего, поэтому я хотел бы создать общий вид и расширить его, чтобы специализировать.
Учитывая, что у каждого представления есть контроллер, я попытался создать родительский контроллер (который представляет собой модуль, определенный с помощью функции определения), а затем попытался расширить его, но безуспешно.
Что я делаю, так это создаю 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 (с помощью объявления). Как я могу получить иерархию контроллеров представления?