使用Dojo';s模块化以分离javascript文件
我是Dojo的新手,我一直在尝试使用Esri的Javascript API开发一个地图应用程序,该API基于Dojo框架使用Dojo';s模块化以分离javascript文件,javascript,html,dojo,Javascript,Html,Dojo,我是Dojo的新手,我一直在尝试使用Esri的Javascript API开发一个地图应用程序,该API基于Dojo框架 <link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/main.css"> </head> <body class="nihilo"> <!--[if
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
我决定从头开始,将应用程序的不同部分分离成不同的JS文件,并使用Dojo的AMD加载程序加载它们
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
这是我到目前为止所拥有的,当页面当前正在工作并且Firebug验证javascript文件是否被正确访问时,dojo应用程序中的javascript都没有工作
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
如果你以前有过这样的经历,并且能为我指出正确的方向,我会非常感激
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
HTML主页面:
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
UI JS:
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
define([
"dojo/dom",
"dijit/Dialog",
"dijit/form/Form",
"dojo/_base/connect",
"dijit/form/Button",
"dojo/request",
"dojo/dom-attr",
"dojo/json",
"dojo/domReady!"], function(declare, Dialog) {
// Class with custom properties and methods
return declare(null, {
loginText: '<div id="loginForm"><label for="email">User:</label> <input id="email" type="text" name="email" /><br /><label for="password">Password:</label> <input id="password" type="password" name="password" id="password"/><br /><button id="submitLogin">Login</button></div>',
messageDialog: new Dialog({
title: "Message",
style: "width:400px;"
}),
loginDialog: new Dialog({
title: "User Login",
content: loginText,
style: "width: 400px;"
}),
loginButton: new Button({
label: "Login",
onClick: login()
}, "submitLogin"),
start: function() {
checkLogin();
},
login: function() {
ui.loginDialog.hide();
var username = dojo.byId("email");
var password = dojo.byId("password");
dojo.attr(password, "value", hex_sha512(dojo.attr(password, "value")).toUpperCase());
request.post("index.php", {
data: {
a: "login",
p: dojo.attr(password, "value"),
email: dojo.attr(username, "value"),
},
handleAs: "json",
timeout: 10000
}).then(function(response) {
checkLogin();
});
},
checkLogin: function() {
request.post("index.php", {
data: {
a: "login_check"
},
handleAs: "json",
timeout: 10000
}).then(function(result) {
link = dom.byId("loginLink");
if (result.login == "success") {
link.innerHTML = "Logout";
dojo.attr(link, "href", "?a=logout");
if (ui.loginDialogHandle)
dojo.disconnect(ui.loginDialogHandle);
}
else {
link.innerHTML = "Login";
dojo.attr(link, "href", "#");
ui.loginDialogHandle = dojo.connect(link, "onclick", ui.loginDialog, "show");
}
});
}
})
});
define([
"dojo/_base/declare",
"dojo/dom",
"dijit/Dialog",
"dijit/form/Form",
"dojo/_base/connect",
"dijit/form/Button",
"dojo/request",
"dojo/dom-attr",
"dojo/json",
"dojo/domReady!"], function(declare, dom, Dialog, connect, Button, request) {
请看。它描述了如何在Dojo中定义类
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
define([…],function())中的序列或参数错误。
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
UI JS:
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
define([
"dojo/dom",
"dijit/Dialog",
"dijit/form/Form",
"dojo/_base/connect",
"dijit/form/Button",
"dojo/request",
"dojo/dom-attr",
"dojo/json",
"dojo/domReady!"], function(declare, Dialog) {
// Class with custom properties and methods
return declare(null, {
loginText: '<div id="loginForm"><label for="email">User:</label> <input id="email" type="text" name="email" /><br /><label for="password">Password:</label> <input id="password" type="password" name="password" id="password"/><br /><button id="submitLogin">Login</button></div>',
messageDialog: new Dialog({
title: "Message",
style: "width:400px;"
}),
loginDialog: new Dialog({
title: "User Login",
content: loginText,
style: "width: 400px;"
}),
loginButton: new Button({
label: "Login",
onClick: login()
}, "submitLogin"),
start: function() {
checkLogin();
},
login: function() {
ui.loginDialog.hide();
var username = dojo.byId("email");
var password = dojo.byId("password");
dojo.attr(password, "value", hex_sha512(dojo.attr(password, "value")).toUpperCase());
request.post("index.php", {
data: {
a: "login",
p: dojo.attr(password, "value"),
email: dojo.attr(username, "value"),
},
handleAs: "json",
timeout: 10000
}).then(function(response) {
checkLogin();
});
},
checkLogin: function() {
request.post("index.php", {
data: {
a: "login_check"
},
handleAs: "json",
timeout: 10000
}).then(function(result) {
link = dom.byId("loginLink");
if (result.login == "success") {
link.innerHTML = "Logout";
dojo.attr(link, "href", "?a=logout");
if (ui.loginDialogHandle)
dojo.disconnect(ui.loginDialogHandle);
}
else {
link.innerHTML = "Login";
dojo.attr(link, "href", "#");
ui.loginDialogHandle = dojo.connect(link, "onclick", ui.loginDialog, "show");
}
});
}
})
});
define([
"dojo/_base/declare",
"dojo/dom",
"dijit/Dialog",
"dijit/form/Form",
"dojo/_base/connect",
"dijit/form/Button",
"dojo/request",
"dojo/dom-attr",
"dojo/json",
"dojo/domReady!"], function(declare, dom, Dialog, connect, Button, request) {
应用程序JS:
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
define([
"esri/map"
], function(Map) {
return declare(null, {
map: null,
start: function() {
map = new esri.Map("map", {
center: [-92.881154, 45.166838],
zoom: 14,
basemap: "gray"
})
}
})
});
define([
"dojo/_base/declare",
"esri/map"
], function(declare, Map) {
此外,在appjs中,您已经定义了Map
,因此无需编写
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
map = new esri.Map("map", {
但是
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>
PS:可能有龙。。。这些只是我注意到的几件事。我认为你真的应该把那些
标签放在
中,首先是那些带有src
属性的标签。嗨,谢谢你的评论。我做了你建议的改变,但我仍然面临一些问题。Firebug没有显示任何错误,类中的函数也没有运行。从你的角度来看,我是否以适当的方式处理这个问题?我对javascript类没有太多的研究,你对启动这样的项目有什么建议也会很有帮助。你能描述一下你的项目的目录结构吗?或者最好在jsfiddle.net上绘制它?另外,为了检查AMD的工作情况,您可以在返回declare(…)之前放置console.log('bla-bla-bla')
。我已经开始看到一些进展,我对javascript的this操作符进行了大量研究,并使用这个面向对象的模型成功地实现了大部分功能。
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body class="nihilo">
<!--[if lt IE 9]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="header">
<div id="logo">
<a href="http://www.co.washington.mn.us/"><img src="img/clearlogo.png" alt="Washington County Logo" /></a>
</div>
<div class="login">
<a id="loginLink" href=""></a>
</div>
<div id="title">
<h1></h1>
</div>
</div>
<div id="clear" style="clear:both;"></div>
<div class="container">
<div id="sidebar">
<div class="inner">
<div id="edit" >
<h2 id="addText" >Add Features:</h2>
<div id="editor">
</div>
</div>
<h2>Find Address:</h2>
<div id="searchAddr"></div>
<h2>Find Name:</h2>
<div id="searchName"></div>
</div>
</div>
<div id="map">
</div>
<div class="clear"></div>
</div>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>-->
<script>
var dojoConfig = {
parseOnLoad: false,
packages: [
{name: "app", location: "/new_app/js/app"}
],
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
};
</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/3.5/" data-dojo-config="parseOnLoad: true, isDebug: true"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script src="js/sha512.js"></script>
</body>
</html>