|
@@ -60,7 +60,6 @@ function router() {
|
|
|
var path = null;
|
|
|
var query;
|
|
|
var templateName = null;
|
|
|
- var urlArray = null;
|
|
|
|
|
|
|
|
|
var matches = location.hash.match(/^#?([\w]*)(?:\?)?(.*)?/);
|
|
@@ -97,6 +96,7 @@ function router() {
|
|
|
}
|
|
|
else {
|
|
|
console.warn("Content found but no route matching", path);
|
|
|
+ window.location.assign("");
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -104,18 +104,32 @@ function router() {
|
|
|
window.addEventListener("hashchange", router);
|
|
|
window.addEventListener("load", router);
|
|
|
|
|
|
-
|
|
|
-route("/", function (q) {
|
|
|
- console.log("Home controller", q);
|
|
|
+
|
|
|
+ * Route declarations:
|
|
|
+ *
|
|
|
+ * - route context functions return a context instance.
|
|
|
+ * - on invalid arguments, they redirect to the home page
|
|
|
+ */
|
|
|
+route("/", function HomeContext() {
|
|
|
+ console.log("Home page");
|
|
|
});
|
|
|
|
|
|
-route("class", function (q) {
|
|
|
- console.log("Class controller", q);
|
|
|
- this.greeting = "Hello world!";
|
|
|
- this.moreText = "Bacon ipsum...";
|
|
|
+route("class", function ClassContext(q) {
|
|
|
+ this.class = q.class ? q.class : null;
|
|
|
+ if (!this.class) {
|
|
|
+ window.location.assign("");
|
|
|
+ }
|
|
|
+ console.log("Class page", this.class);
|
|
|
+});
|
|
|
+
|
|
|
+route("species", function SpeciesContext(q) {
|
|
|
+ this.species = q.species ? q.species : null;
|
|
|
+ if (!this.species) {
|
|
|
+ window.location.assign("");
|
|
|
+ }
|
|
|
+ console.log("Species page", this.species);
|
|
|
});
|
|
|
|
|
|
-route("species", function (q) {
|
|
|
- console.log("Species controller", q);
|
|
|
- this.heading = "I\"m page two!";
|
|
|
+route("about", function AboutContext() {
|
|
|
+ console.log("About page");
|
|
|
});
|