BasemapGallery<\/A> umschließt und die Karte neu zentriert, wenn die Basiskarte geändert wird.<\/P>define([\n 'dojo\/_base\declare',\n 'dojo\/_base\lang',\n 'dojo\/_dom',\n 'dojo\/_dom-construct',\n 'esri\/_domUtils',\n 'esri\/_dijit\/_BasemapGallery',\n 'dijit\/_WidgetBase',\n 'dijit\/_TemplatedMixin',\n '.\/_RecenterMixin',\n 'dojo/text!.\/_templates\/_BasemapSwitcher.html'\n], function(\n declare, lang, dom, domConstruct,\n esriDomUtils, BasemapGallery,\n _WidgetBase, _TemplatedMixin,\n _RecenterMixin,\n template\n) {\n return declare([_WidgetBase, _TemplatedMixin, _RecenterMixin], {\n templateString: template,\n postCreate: function() {\n var node = dom.byId('map_root');\n esriDomUtils.hide(this.domNode);\n domConstruct.place(this.domNode, node);\n var map = this.get('map');\n this.gallery = new BasemapGallery({\n map: map,\n showArcGISBasemaps: true\n }, this.bmNode);\n this.gallery.startup();\n this.gallery.on('selection-change', lang.hitch(this, function() {\n this.recenter(); \/\/ MIXIN MAGIC\n }));\n },\n & nbsp ; hide: function() { \ n & nbsp ; & nbsp ; esriDomUtils.hide(this.domNode); \ n & nbsp ; }, \ n & nbsp ; show: function() { \ n & nbsp ; & nbsp ; esriDomUtils.show(this.domNode); \ n & nbsp ; } \ n }); \ n }); < \/ PRE > < P > < SPAN style = "font-size: 8pt ; color : #505050 ; " > < EM > Wenn ich mir dieses Beispiel anschaue , könnte ich sogar die Methoden hide/show in ein Mixin verschieben und anderswo wiederverwenden < \/ EM > < \/ SPAN > < \/ P > < P > < \/ P > < H2 id = "toc-hId-1015442459" id = "toc-hId-1015442459" > Warte mal kurz < \/ H2 > < P > Vielleicht fragen Sie sich , < EM > was der Unterschied ist < \/ EM > zwischen etwas wie < STRONG > _WidgetBase < \/ STRONG > und einem Mixin ? Typischerweise ist ein Mixin für sich genommen ziemlich nutzlos . Im obigen Beispiel , wenn Sie nur < STRONG > _RecenterMixin < \/ STRONG > allein erweitern würden , hätten Sie nicht die Methode < STRONG > postCreate < \/ STRONG > oder eine < STRONG > templateString < \/ STRONG > zur Verfügung . Ein Mixin kann sogar von etwas wie < STRONG > _WidgetBase < \/ STRONG > abhängen , indem es sich in Lebenszyklusmethoden einklinkt . Im Kern erweitern Sie immer noch Module , erweitern das Verhalten von Widgets . < \/ P > < P > < \/ P > < P > Ich habe ein < A href = "https:\/\/github.com\/odoe\/esrijs-mixin-sample" rel = "nofollow noopener noreferrer" target = "_blank" > Demo-Repo dieses Projekts < \/ A > auf github für Sie zum Ausprobieren bereitgestellt . < \/ P > < P > < \/ P > < P > Also gehen Sie raus und sehen Sie , ob Sie Mixins in Ihrem Projekt auslagern können und vielleicht die Wartung Ihrer Anwendung vereinfachen . Vielleicht stellen Sie fest , dass Ihnen die Möglichkeit gefällt , Verhalten zwischen verschiedenen Widgets wiederzuverwenden , und so mehr Nutzen aus all der harten Arbeit ziehen , die Sie in Ihren Code gesteckt haben . < \/ P > < P > < \/ P > < P > Für weitere geodev Tipps und Tricks besuchen Sie meinen Blog unter < A href = "http:\/\/odoe.net\/blog\/" rel = "nofollow noopener noreferrer" target = "_blank" > meinem Blog .