<\/HEAD>
<\/P>
Ab und zu fragt mich jemand, wie er seine ArcGIS JS API App strukturieren sollte. In meinem Buch<\/A> empfehle ich folgende App-Struktur:<\/P><\/P>
app\/<\/STRONG><\/SPAN><\/P> |-- css\/<\/STRONG><\/SPAN><\/P> |-- js\/<\/STRONG><\/SPAN><\/P> |-- controllers\/<\/STRONG><\/SPAN><\/P> |-- services\/<\/STRONG><\/SPAN><\/P> |-- utils\/<\/STRONG><\/SPAN><\/P> |-- widgets\/<\/STRONG><\/SPAN><\/P> |-- main.js<\/STRONG><\/SPAN><\/P> |-- run.js<\/STRONG><\/SPAN><\/P> |-- index.html<\/STRONG><\/SPAN><\/P><\/P>Ich habe diese App-Struktur für viele Projekte verwendet und sie hat gut funktioniert. Typischerweise sah mein run.js<\/STRONG> so aus:<\/P>(function() {
'use strict';
var pathRX = new RegExp(\/2F[^\/2F]+$\/2F)
, locationPath = location.pathname.replace(pathRX, '');
require({
packages: [{
name: 'controllers',
location: locationPath + 'js/controllers'
}, {
name: 'widgets',
location: locationPath + 'js/widgets'
}, {
name: 'utils',
location: locationPath + 'js/utils'
}, {
name: 'services',
location: locationPath + 'js/services'
}, {
name: 'app',
location: locationPath + 'js',
main: 'main'
}]
}, ['app']);
})();<\/PRE><\/P>Das funktioniert ziemlich gut. Aber eine Sache, die es nicht berücksichtigt, ist, die app und alle Submodule als ein app<\/STRONG>-Package zu behandeln. Dies betrifft eher die Behandlung meiner Module als Packages bei Verwendung des CDN. Was ist der Unterschied?<\/EM> Schön, dass Sie fragen!<\/P><\/P>Angenommen, Sie möchten Ihre Anwendung bauen. Vielleicht wollen Sie den
ArcGIS optimizer<\/A> oder esri-slurp<\/A> verwenden, der übrigens ein großartiges Beispiel hier<\/A> hat. Sie werden Ihre Anwendung als eigenes Package behandeln wollen. Was meine ich damit? Schauen wir uns an, wie Sie die ArcGIS JS API verwenden.<\/P><\/P>
require(['esri/map', 'dojo/declare'], function(Map, declare) { /*cool stuff*/ });<\/PRE><\/P>In diesem Fall ist esri<\/STRONG> ein Package und dojo<\/STRONG> ein Package. Es gibt weitere Packages in der API, wie dgrid<\/STRONG>, dstore<\/STRONG>, und diijt<\/STRONG>. Das liegt daran, dass wenn Sie das Dojo build system<\/A> verwenden, es weiß, wie es die Dateien referenzieren muss. So können Sie Ihre Anwendung natürlich als eigenes Package bündeln, genannt app<\/STRONG>. Sie können es Sally nennen, wenn Sie wollen, aber nehmen wir an, app funktioniert ganz gut.<\/P><\/P>Heutzutage strukturiere ich meine App gerne so ähnlich.<\/P>index.html<\/STRONG>
dojoConfig.js
app/
&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;;amp;
|-- styles/
|-- models/
|-- services/
|-- utils/
|-- widgets/
|-- main.js
|-- app.profile.js
|-- package.json
|-- config.json
This is the translation of the entire content provided in the input JSON value into German while preserving all HTML tags and code blocks exactly as they are.
Generator für ArcGIS JS Apps, den Sie als
Demo-App hier sehen können. Es ist noch ziemlich experimentell, könnte aber für einige nützlich sein.<\/P>
<\/P>
Die cmv-app hat eine interessante App-Struktur mit einer Konfigurationsbasis ähnlich wie dieses Starterkit, an dem ich gearbeitet habe.<\/P>
<\/P>
Der Schlüssel hier, egal ob Ihnen mein Rat gefällt oder nicht, ist, eine Struktur zu wählen, die für Sie funktioniert. Sie könnten Ihre main.js als Anwendungscontroller verwenden und einfach einen Widget-Ordner mit all Ihren UI-Komponenten haben. Nochmals, solange es für Sie funktioniert, sind Sie startklar.<\/P>
<\/P>
Ich werde einen Folge-Blogbeitrag schreiben, der über den nächsten Schritt spricht, nämlich das Erstellen eines benutzerdefinierten Builds Ihrer Anwendung. Das wird Spaß machen!<\/P>
<\/P>
Für mehr geodev Tipps und Tricks, sehen Sie sich meinen Blog an.<\/P><\/BODY><\/HTML>