0

次のようなモジュールが定義されたファイルが 1 つあります。



    define([
        "xstyle/css!./less/layout.less", 
        "dojo", "dojo/parser", "dojo/store/Memory", "dojo/dom-style", "dojo/dom-construct", "dojo/store/Observable", "dojo/_base/declare", "dojo/query", "dojo/dom-attr", "dojo/on", "dojo/request/xhr", "dojo/sniff", "dojo/keys", "dojo/string", "dojo/topic", "dojo/date/locale", "dojo/date/stamp", "dojo/date", "dojo/store/JsonRest", "dojo/number", "dojo/_base/lang",
        "dijit", "dijit/PopupMenuItem", "dijit/Menu", "dijit/MenuItem", "dijit/form/Select", "dijit/Dialog", "dijit/layout/ContentPane", "dijit/Toolbar", "dijit/form/Button", "dijit/form/ValidationTextBox", "dijit/form/FilteringSelect",
        "dojox/layout/TableContainer", 
        "dgrid/editor", "dgrid/Keyboard", "dgrid/selector"
       ],
        function(
            less, 
            dojo, parser, MemoryStore, domStyle, domConstruct, Observable, declare, query, domAttr, on, xhr, has, keys, string, topic, localeDate, stamp, dojoDate, JsonRest, dojoNumber, lang,
            dijit, PopupMenuItem, Menu, MenuItem, Select, Dialog, ContentPane, Toolbar, Button, TextBox, FilteringSelect,
            TableContainer, 
            editor, Keyboard, selector
            ) {

            function createWidgetSpecified(root, collectionsToolbar){
                ...
            }

            function getCollectionGrid(root, fieldCode, style){
                ....
            }

            function filterDocumentTypeFieldsForNonByte(documentData){
                .....
            }

            ...


            return declare(Dialog, {
                ...,
                ...,
                constructor: function(args){
                  lang.mixin(this, args);
                },
                createIssuerInfo: function(issuerData){
                    ...
                },
                createMatcher: function(root){
                    ...
                },
                ...
            });
        });

そして、私は別のものと混ぜたいです。私にとって重要なことは、新しい関数を置き換えるか追加することです(クラスで宣言されていません)。たとえば、createWidgetSpecified を新しいバージョンに置き換え、さらに 2 つの関数 (startSave、startDelete) を追加したいと考えています。これどうやってするの ?

これらの関数が実行時にのみ知られていることについては言及しません。つまり、私が定義したモジュールは、パラメーター タイプ = 26 で作成されます。そして、ファイルからその関数をロードしたい: タイプ 26 の ../js/fortype/26/document.js

のように: var moduleObject = new Module({type:26}); そして、タイプ26の関数を動的にロードしたい

4

1 に答える 1

0

ファイル A :

define([
    ..., 
    "./FileB"
], function (
    ..., FileB) {

   return declare([otherMixins, FileB], {
       // functions in File A   
   });
});

ファイル B:

define([
    ...
], function (
    ...) {

   return declare([], {
       // functions in File B   
   });
});
于 2013-10-02T13:43:04.270 に答える