octane v1.0.3
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()
-
Router.add(pattern, callback) ⇒ this
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 |
-
Router.atRoot ⇒ boolean
Determine if the current location is the Application's root
Kind: static property of Router
Access: public
Read only: true
-
Router.beforePageLoad(page(s), deferred) ⇒ this
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
Octane.Router.beforePageLoad('about',function(resove,reject){...});
-
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
-
Router.isLocked ⇒ boolean
Is the router locked?
Kind: static property of Router
Access: public
Read only: true
-
Router.lock() ⇒ string
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
-
Router.mode ⇒ object
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
-
Router.onPageExit(page(s), callback, argsArray, thisArg) ⇒ this
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 |
-
Router.onPageLoad(page(s), callback, argsArray, thisArg) ⇒ this
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 loaded
Octane.Router.onPageLoad('registrants',
addNewPerson,
[octane.get('Registrant.name'),octane.get('Registrant.job')],
Person);
-
Router.onUndefined()
Define a function to call in the event no routes exist on the specified path
Kind: static method of Router
Access: public
-
Router.pageLoadIf(page(s), predicate) ⇒ this
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 |
-
Router.queue ⇒ array
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 |
-
Router.routes ⇒ array
List of routes registered with the Router
Kind: static property of Router
Returns: array - the array of registered routes
Access: public
Read only: true
-
Router.unlock(key) ⇒ boolean
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. |
-
Router.urlSearchObject() ⇒ object
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.urlSearchObject("http://yoursite.com?pawns=5&kings=1")
=> {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
-