This boilerplate gives you all you need to start a new custom widget for Mendix 5.6.0 and up.
The boilerplate contains:
For more information on contributing to this repository visit Contributing to a GitHub repository!
Use this template to start building a widget for Mendix 5. Alter this README.md file and describe what your widget does.
The javascript inside the widget has examples of:
The JavaScript contains an extensive list of modules that may be used to build a widget. It is best to reduce this list to what is actually used. Use JSHint to help identify errors and problems.
Be sure to keep the module name array and the parameter list of the anonymous function below the module list in sync!
The following modules are necessary for all widgets:
If your widget does not use an HTML template:
If your widget does not need jQuery:
Working with jQuery can be difficult due to the fact that jquery does not adhere to the AMD standard correctly. Check out Pull Request #13 or the Dojo AMD documentation for details.
A widget that uses Dojo AMD may not refer to functions like dojo.forEach etc. All necessary modules must be declared on the module list at the top of the source.
Replacing all 'old' Dojo calls in an existing source can be a bit of a pain.
Here is a list of commonly used functions and their new counterpart:
Old | New |
---|---|
mxui.dom | domMx |
dojo.byId | dom.byId |
dojo.query | document.querySelector |
dojo.forEach | dojoArray.forEach |
dojo.hitch | lang.hitch |
dojo.addClass | domClass.add |
dojo.removeClass | domClass.remove |
dojo.hasClass | domClass.contains |
dojo.replaceClass | domClass.replace |
dojo.empty | domConstruct.empty |
dojo.place | domConstruct.place |
dojo.on | on |
dojo.window | win |
The referenced modules are in the module list of the boilerplate JavaScript.