AngularJS Module that enables iScroll 5.x to work using a directive
See demo/ Directory Note: Recommended to be used with iOS or Android devices only
ng-iScroll
to your bower.json
file.Include ng-iscroll.js or ng-iscroll.min.js in your html header or existing file before your application main js file
Add 'ng-iscroll' to your Angular app's dependencies
var App = angular.module('App', ['ng-iscroll']);
Add directive ng-iscroll
to the <div id="wrapper">
<div id="wrapper" ng-iscroll>
Binding Delay:
If you want to delay the iScroll binding due to having animations or using another JS Library to modify the Angular view you can add a timeout value by using the attribute ng-iscroll-delay='{delayInMiliseconds}'
. The default delay is 5ms.
Forms:
Forms within an iScroll has certain issues with editing Text values or Select boxes. To enable support for forms add the following option to the wrapper div: ng-iscroll-form='true'
the default is set to 'false'
Naming of Instance: When multiple iScrolls are present on a single page and each needs different runtime settings or functions there is a need to identify each instance. This is done either by setting the 'ng-iscroll="{instanceName}"' or if not set it will default to the id of the div.
Note: This breaks version 1.0's usage of the ng-iscroll value to define the delay in dom binding. Please update your code to use ng-iscroll-delay to change the default delay.
See demos/ directory for examples of both
iScroll exposes both runtime and other functions that can change the appearance or behavior of the iScroll. These can be set via the AppController to further configure iScroll.
Example:
HTML:
<div id="wrapper" ng-iscroll='wrapper' ng-iscroll-delay='50'>
<button ng-click="refreshiScroll()">Refresh</button>
</div>
AppController:
$scope.$parent.myScrollOptions = {
'wrapper': {
snap: false,
onScrollEnd: function ()
{
alert('finshed scrolling wrapper');
}},
};
$scope.refreshiScroll = function ()
{
$scope.$parent.myScroll['wrapper'].refresh();
alert('wrapper refreshed');
};
The default settings for ng-iScroll are the following:
The above can be overridden using the $scope.$parent.myScrollOptions option in your Controller.
For more examples see the demo directory.
ng-IScroll is released under the MIT License.
Thanks to the following help for submitting bugs and suggesting new features: