BasemapGallery<\/A> et recentrer la carte lorsque la carte de base est changée.<\/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 hide: function() {\n esriDomUtils.hide(this.domNode);\n },\n show: function() {\n :& nbsp ;& nbsp ; esriDomUtils.show(this.domNode); \ n & nbsp ; & nbsp ; } \ n & nbsp ; }); \ n}); < / PRE > < P > < SPAN style = "font-size: 8pt ; color : #505050 ; " > < EM > En regardant cet exemple , je pourrais même déplacer les méthodes hide / show vers un mixin et les réutiliser ailleurs < / EM > < / SPAN > < / P > < P > < / P > < H2 id = "toc-hId-1015442459" id = "toc-hId-1015442459" > Attendez une seconde < / H2 > < P > Vous pourriez vous demander < EM > quelle est la différence < / EM > entre quelque chose comme < STRONG > _WidgetBase < / STRONG > et un mixin ? Typiquement , un mixin seul est assez inutile . Dans l'exemple ci-dessus , si vous étendiez juste < STRONG > _RecenterMixin < / STRONG > seul , vous n'auriez pas la méthode < STRONG > postCreate < / STRONG > ni une < STRONG > templateString < / STRONG > avec laquelle travailler . Un mixin peut même dépendre de quelque chose comme < STRONG > _WidgetBase < / STRONG > , s'accrochant aux méthodes du cycle de vie . Au cœur , vous étendez toujours des modules , étendant le comportement ou les widgets . < / P > < P > < / P > < P > J'ai mis un dépôt démo de ce projet sur github pour que vous puissiez jouer avec : < A href = "https://github.com/odoe/esrijs-mixin-sample" rel = "nofollow noopener noreferrer" target = "_blank" > demo repo of this project </ A > . < / P > < P > < / P > < P > Alors allez-y et voyez si vous pouvez commencer à extraire des mixins dans votre projet et peut-être simplifier la maintenance de votre application . Vous pourriez découvrir que vous aimez vraiment la capacité à réutiliser le comportement entre différents widgets , < EM > tirer davantage parti de tout le travail acharné que vous avez investi dans votre code </ EM > . < / P > < P > < / P > < P > Pour plus d'astuces geodev , consultez mon blog : < A href = "http://odoe.net/blog/" rel = "nofollow noopener noreferrer" target = "_blank" > my blog </ A > .< / P >< / BODY >< / HTML >