Router
- Router
- .add(pattern, callback) ⇒
this
- .atRoot ⇒
boolean
- .beforePageLoad(page(s), deferred) ⇒
this
- .clearRoutes()
- .currentPage
- .isLocked ⇒
boolean
- .lock() ⇒
string
- .mode ⇒
object
- .onPageExit(page(s), callback, [argsArray], [thisArg]) ⇒
this
- .onPageLoad(page(s), callback, [argsArray], [thisArg]) ⇒
this
- .onUndefined()
- .pageLoadIf(page(s), predicate) ⇒
this
- .queue ⇒
array
- .remove(pattern)
- .route(route)
- .routes ⇒
array
- .unlock(key) ⇒
boolean
- .urlSearchObject() ⇒
object
- .useBrowserEvents()
- .usePolling()
- .add(pattern, callback) ⇒
this
Router.add(pattern, callback) ⇒ Add a route to be called when the URL changes
Kind: static method of Router
Returns: this
- for method chaining
Access: public
Param | Type | Description |
---|---|---|
pattern | regexp | string |
A regexp pattern that matches a route against a URL. If passed as a string, beginning and trailing slashes will be stripped before being added to the routes array. |
callback | function |
The callback to execute on a matching route, will be applied with the matched values of the route regexp |
boolean
Router.atRoot ⇒ Determine if the current location is the Application's root
Kind: static property of Router
Access: public
Read only: true
this
Router.beforePageLoad(page(s), deferred) ⇒ Add a Promise that must resolve before a page (or pages) can load
Kind: static method of Router
Returns: this
- for method chaining
Access: public
See: OctanePage
Param | Type | Description |
---|---|---|
page(s) | string | array |
The names of pages the condition should be evaluated for |
deferred | function |
A deferred function that will be wrapped in a Promise |
Example
OctaneRouter;
Router.clearRoutes()
Remove all routes from the Router
Kind: static method of Router
Access: public
Router.currentPage
Get the current page of the Application
Kind: static property of Router
Access: public
Read only: true
boolean
Router.isLocked ⇒ Is the router locked?
Kind: static property of Router
Access: public
Read only: true
string
Router.lock() ⇒ Lock the Router
Kind: static method of Router
Returns: string
- A randomly generated key to unlock the router from THIS lock. Other locks may still be in place.
Access: public
object
Router.mode ⇒ Get the mode details of the application
Kind: static property of Router
Returns: object
- Returns an object with keys history, hash, and local. Values are booleans
Access: public
Read only: true
this
Router.onPageExit(page(s), callback, [argsArray], [thisArg]) ⇒ Add a callback to the array of callbacks executed when a page has animated offscreen. Callbacks are wrapped in Promises at time of execution.
Kind: static method of Router
Returns: this
- for method chaining
Access: public
See: OctanePage
Param | Type | Description |
---|---|---|
page(s) | string | array |
The names of pages the callback should execute for |
callback | function |
A callback to execute |
[argsArray] | array |
An array of arguments to be applied to the callback at execution |
[thisArg] | object |
The 'this' value of the callback at execution time, default is the Page object |
this
Router.onPageLoad(page(s), callback, [argsArray], [thisArg]) ⇒ Add a callback to the array of callbacks executed when a page has animated onscreen. Callbacks are wrapped in Promises at time of execution.
Kind: static method of Router
Returns: this
- for method chaining
Access: public
See: OctanePage
Param | Type | Description |
---|---|---|
page(s) | string | array |
The names of pages the callback should execute for |
callback | function |
A callback to execute |
[argsArray] | array |
An array of arguments to be applied to the callback at execution |
[thisArg] | object |
The 'this' value of the callback at execution time, default is the Page object |
Example
// creates new Person with current values of Registrant ViewModel when page 'registrants' is loadedOctaneRouter;
Router.onUndefined()
Define a function to call in the event no routes exist on the specified path
Kind: static method of Router
Access: public
this
Router.pageLoadIf(page(s), predicate) ⇒ Add a predicate condition that must be true for a page(s) to load
Kind: static method of Router
Returns: this
- for method chaining
Access: public
See: OctanePage
Param | Type | Description |
---|---|---|
page(s) | string | array |
The names of page(s) the condition should be evaluated for |
predicate | function |
A function that should return a truthy or falsy value |
array
Router.queue ⇒ Queued Pages waiting to load during a lock
Kind: static property of Router
Returns: array
- the array of queued pages
Access: public
Read only: true
Router.remove(pattern)
Remove a route from the array of saved routes
Kind: static method of Router
Access: public
Param | Type | Description |
---|---|---|
pattern | regexp |
The pattern to remove |
Router.route(route)
Determine hashing format and page from fragment, then use history.pushState or hashchange to set the route
Kind: static method of Router
Access: public
Param | Type | Description |
---|---|---|
route | string |
Root-relative URL fragment to be mapped by Router._executeRoute |
array
Router.routes ⇒ List of routes registered with the Router
Kind: static property of Router
Returns: array
- the array of registered routes
Access: public
Read only: true
boolean
Router.unlock(key) ⇒ Unlock the router from a calling of Router.lock
.
If the Router is locked, then after X number of failed unlocked attempts in a row,
the Router will lock out and the Application will need to be restarted.
Number of attempts can be set at Octane.initialize via appConfig.maxConsecutiveAllowedRouterUnlockAttemps
, or defaults to 10
Kind: static method of Router
Returns: boolean
- false if key is invalid or more locks remain, otherwise true and loads pages queued during lock
Throws:
Error
thrown when the maximum number of consecutive failed unlocks is attempted. Router becomes permanently locked and Application will need restarted (prevent brute force unlocks)
Access: public
Param | Type | Description |
---|---|---|
key | string |
The key returned from Router.lock to unlock the lock it placed. Other locks may still be in place. |
object
Router.urlSearchObject() ⇒ Helper to parse URL's search string into an object
Kind: static method of Router
Returns: object
- an object of search parameters
Access: public
Example
Router kings: 1 pawns: 5
Router.useBrowserEvents()
Update App state on URL change. Turns off polling interval if set. Octane calls this during initilization, unless overridden by appConfig.legacyRouting: true
.
Kind: static method of Router
Access: public
Router.usePolling()
Set fallback to use polling in case popstate/hashchange is being finicky. Drops popstate
or hashchange
event listeners.
Kind: static method of Router
Access: public