2016-11-23 13 views
0

Я создал додзё пользовательского шаблонного виджетInvoke додзе пользовательского виджета

define([ "dojo/_base/declare", "checkAppICNPluginDojo/common/ServiceUtils", 
     "checkAppICNPluginDojo/p8ICNpages/CheckAppQueueData", 
     "checkAppICNPluginDojo/p8ICNpages/MainStepProcessor", 
     "checkAppICNPluginDojo/p8ICNpages/DashBoardScreenData", 
     "checkAppICNPluginDojo/common/CheckAppConstants", "ecm/model/Request", 
     "dojo/_base/lang", "dijit/layout/ContentPane", "dijit/registry", 
     "dojo/dom", "dojox/grid/TreeGrid", "dijit/tree/ForestStoreModel", 
     "dojo/data/ItemFileWriteStore", "dijit/layout/BorderContainer", 
     "dijit/layout/TabContainer","dijit/_Widget","dijit/_TemplatedMixin", "dijit/_WidgetsInTemplateMixin" , "dijit/_WidgetBase","dojo/text!../templates/CheckAppMainPage.html"], 

function(declare, ServiceUtils, CheckAppQueueData, MainStepProcessor, 
     DashBoardScreenData, CheckAppConstants, Request, lang, ContentPane, 
     registry, dom, TreeGrid, ForestStoreModel, ItemFileWriteStore, 
     BorderContainer, TabContainer,_Widget,_TemplatedMixin,_WidgetsInTemplateMixin,_WidgetBase,template) { 

    declare("checkAppICNPluginDojo.p8ICNPages.CheckAppMainPage",[_Widget,_TemplatedMixin,_WidgetsInTemplateMixin,_WidgetBase],{ 
     templateString : template, 
     widgetsInTemplate: true, 
     constructor: function() { 
      }, 
     postMixInProperties : function() { 
      alert("3"); 
     }, 
     postCreate : function() { 
      alert("2"); 
     }, 
     CheckAppMainPage:function(){ 
      alert("1"); 
     } 

    }) 

}); 

template is 

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>CheckApp Main</title> 
</head> 
<body> 
<div id="chkappmainpage"> 
<div data-dojo-type="dijit/layout/BorderContainer" style="width: 100%; height: 100%;"> 
    <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'">Top pane</div> 
    <div data-dojo-type="dijit/layout/AccordionContainer" data-dojo-props="region:'leading'"> 
     <div data-dojo-type="dijit/layout/AccordionPane" title="pane #1">accordion pane #1</div> 
     <div data-dojo-type="dijit/layout/AccordionPane" title="pane #2">accordion pane #2</div> 
     <div data-dojo-type="dijit/layout/AccordionPane" title="pane #3">accordion pane #3</div> 
    </div> 
    <div data-dojo-type="dijit/layout/TabContainer" data-dojo-props="region:'center'"> 
     <div data-dojo-type="dijit/layout/ContentPane" title="tab #1">tab pane #1</div> 
     <div data-dojo-type="dijit/layout/ContentPane" title="tab #2">tab pane #2</div> 
     <div data-dojo-type="dijit/layout/ContentPane" title="tab #3">tab pane #3</div> 
    </div> 
    <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'trailing'">Trailing pane</div> 
    <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'bottom'">Bottom pane</div> 
</div> 

</div> 
</body> 
</html> 

Теперь я пытаюсь вызвать выше пользовательский виджет из JavaScript, как показано ниже

define(
     [ "dojo/_base/declare", "checkAppICNPluginDojo/common/ServiceUtils", 
       "checkAppICNPluginDojo/p8ICNpages/CheckAppQueueData", 
       "checkAppICNPluginDojo/p8ICNpages/MainStepProcessor", 
       "checkAppICNPluginDojo/p8ICNpages/DashBoardScreenData", 
       "checkAppICNPluginDojo/common/CheckAppConstants", 
       "ecm/model/Request", "dojo/_base/lang", 
       "dijit/layout/ContentPane", "dijit/registry", "dojo/dom", 
       "dojox/grid/TreeGrid", "dijit/tree/ForestStoreModel", 
       "dojo/data/ItemFileWriteStore", "dijit/layout/BorderContainer", 
       "dijit/layout/TabContainer","checkAppICNPluginDojo/p8ICNpages/CheckAppMainPage" ], 

     function(declare, ServiceUtils, CheckAppQueueData, MainStepProcessor, 
       DashBoardScreenData, CheckAppConstants, Request, lang, 
       ContentPane, registry, dom, TreeGrid, ForestStoreModel, 
       ItemFileWriteStore, BorderContainer, TabContainer,CheckAppMainPage) { 
      this.queueName; 
      this.dashBoardRowData; 
      var dashBoradScreen; 

      return declare(
        "checkAppICNPluginDojo.cafeature.DashboardScreen", 
        [ TreeGrid ], 
        { 

         content : "<span class='ca-screen-Header'>Dashboard</span><br/><br/>", 
         init : function(featureObj, navManager) { 


          this.test = new CheckAppMainPage(); 
         } 
        } 
          ); 
       }); 

Но я получив ошибку, поскольку CheckAppMainPage не является конструктором. Пожалуйста, помогите

ответ

0

В вашем определении виджета, вы должны вернуть класс виджета:

return declare("checkAppICNPluginDojo.p8ICNPages.CheckAppMainPage", [_Widget,_TemplatedMixin,_WidgetsInTemplateMixin,_WidgetBase],{ 
    // ... 
}); 
+0

спасибо за указав его. Такая глупая ошибка! –

 Смежные вопросы

  • Нет связанных вопросов^_^