-
Notifications
You must be signed in to change notification settings - Fork 249
Core Events
Chuck Lorenz edited this page Nov 21, 2016
·
15 revisions
Adapt has been built with a module approach and to keep modules separate Adapt uses events to pass information between modules and notify them of changes.
To listen to changes on any core model use the Adapt collections or course model. Backbone automatically triggers an event when an attribute changes.
// List of collections
Adapt.contentObjects
Adapt.articles
Adapt.blocks
Adapt.components
// Course model
Adapt.course
// How to listen
Adapt.articles.on('change:_isComplete', function(model) {
console.log('This article just changed complete status', model.get('_id'));
})
// If inside a view you can use listenTo
this.listenTo(Adapt.components, 'change', this.componentChangedAttribute);
// The model is passed into the componentChangedAttribute on the view
// Using 'change' listens to all changes on a model
Adapt also allows modules to plugin into events through events triggered by core views. These events can be listened to by using the following syntax:
Adapt.on('pageView:postRender', function(view) {
// 'view' is the current view triggering the event
});
Event | Argument | Description |
---|---|---|
configModel:dataLoaded |
Triggered when the config model is loaded. This can be used to stop the course files from being fetched. | |
configModel:loadCourseData |
Triggered just before Adapt creates the main content collections and models. This can be used to load the course files if a plugin has stopped the default fetch. | |
app:dataReady |
Triggered when all the course data is loaded. | |
adapt:start |
Triggered before Adapt starts the router, gives the start controller an opportunity to set a custom start location. | |
adapt:initialize |
Triggered when Adapt is ready to start the router. | |
router:location |
Adapt.location |
Triggered when the location changes. |
router:menu |
model |
Triggered when a route hits a menu. |
router:page |
model |
Triggered when a route hits a page. |
remove |
Is used by Adapt to trigger an event to remove all views. | |
preRemove |
Is used by Adapt to trigger an event that must occur immediately prior to remove . |
|
postRemove |
Is used by Adapt to trigger an event that must occur immediately after remove . |
|
device:resize |
Adapt.device.screenWidth |
Triggered when the window resizes. |
device:changed |
Adapt.device.screenSize |
Triggered when the device size changes. |
Event | Argument | Description |
---|---|---|
menuView:preRender |
view |
Triggered when a menu’s view has initialised. |
menuView:postRender |
view |
Triggered when a menu’s view has rendered. |
pageView:preRender |
view |
Triggered when a page’s view has initialised. |
pageView:postRender |
view |
Triggered when a page’s view has rendered. |
pageView:ready |
view |
Triggered when all the assets are loaded for a page. |
articleView:preRender |
view |
Triggered when an article’s view has initialised. |
articleView:postRender |
view |
Triggered when an article’s view has rendered. |
blockView:preRender |
view |
Triggered when a block’s view has initialised. |
blockView:postRender |
view |
Triggered when a block’s view has rendered. |
componentView:preRender |
view |
Triggered when a component’s view has initalised. |
componentView:postRender |
view |
Triggered when a component’s view has rendered. |
navigationView:preRender |
view |
Triggered when navigation view has initialised. |
navigationView:postRender |
view |
Triggered when navigation view has rendered. |
questionView:showFeedback |
view |
Triggered when a question shows feedback. Question view automatically sets up feedbackTitle and feedbackMessage as attributes on the current view’s model. |
questionView:disabledFeedback |
view |
Triggered when a question is meant to show feedback but _canShowFeedback is disabled on the model. |
Event | Argument | Description |
---|---|---|
navigation:backButton |
Triggered when the menu button is pressed. | |
navigation:toggleDrawer |
Triggered when the drawer toggle button is clicked. |
- Framework in Five Minutes
- Setting up Your Development Environment
- Manual Installation of the Adapt Framework
- Adapt Command Line Interface
- Common Issues
- Reporting Bugs
- Requesting Features
- Creating Your First Course
- Styling Your Course
- Configuring Your Project with config.json
- Content starts with course.json
- Course Localisation
- Compiling, testing and deploying your Adapt course
- Core Plugins in the Adapt Learning Framework
- Converting a Course from Framework Version 1 to Version 2
- Contributing to the Adapt Project
- Git Flow
- Adapt API
- Adapt Command Line Interface
- Core Events
- Core Model Attributes
- Core Modules
- Web Security Audit
- Peer Code Review
- Plugins
- Developing Plugins
- Developer's Guide: Components
- Developer's Guide: Theme
- Making a theme editable
- Developer's Guide: Menu
- Registering a Plugin
- Semantic Version Numbers
- Core Model Attributes
- Adapt Command Line Interface
- Accessibility v3
- Adapt Framework Right to Left (RTL) Support