angular-slick-carousel

WebJar for angular-slick-carousel

License

License

MIT
Categories

Categories

Angular User Interface Web Frameworks
GroupId

GroupId

org.webjars.bower
ArtifactId

ArtifactId

angular-slick-carousel
Last Version

Last Version

3.1.7
Release Date

Release Date

Type

Type

jar
Description

Description

angular-slick-carousel
WebJar for angular-slick-carousel
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/devmark/angular-slick-carousel

Download angular-slick-carousel

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.bower/angular-slick-carousel/ -->
<dependency>
    <groupId>org.webjars.bower</groupId>
    <artifactId>angular-slick-carousel</artifactId>
    <version>3.1.7</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.bower/angular-slick-carousel/
implementation 'org.webjars.bower:angular-slick-carousel:3.1.7'
// https://jarcasting.com/artifacts/org.webjars.bower/angular-slick-carousel/
implementation ("org.webjars.bower:angular-slick-carousel:3.1.7")
'org.webjars.bower:angular-slick-carousel:jar:3.1.7'
<dependency org="org.webjars.bower" name="angular-slick-carousel" rev="3.1.7">
  <artifact name="angular-slick-carousel" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.bower', module='angular-slick-carousel', version='3.1.7')
)
libraryDependencies += "org.webjars.bower" % "angular-slick-carousel" % "3.1.7"
[org.webjars.bower/angular-slick-carousel "3.1.7"]

Dependencies

compile (2)

Group / Artifact Type Version
org.webjars.bower : slick-carousel jar [1.6.0,1.7)
org.webjars.bower : angular jar [1.3.0,)

Project Modules

There are no modules declared in this project.

angular-slick-carousel

angular 2 above take a look https://github.com/devmark/ngx-slick

Join the chat at https://gitter.im/devmark/angular-slick-carousel

Angular directive for slick-carousel

Summary

Usage


  • Using bower to install it. bower install angular-slick-carousel
  • Add jquery, angular, slick-carousel and angular-slick-carousel to your code.
    <link rel="stylesheet" href="../bower_components/slick-carousel/slick/slick.css">
    <link rel="stylesheet" href="../bower_components/slick-carousel/slick/slick-theme.css">

    <script src="../bower_components/jquery/jquery.js"></script>
    <script src="../bower_components/angular/angular.js"></script>
    <script src="../bower_components/slick-carousel/slick/slick.js"></script>
    <script src="../bower_components/angular-slick-carousel/dist/angular-slick.min.js"></script>
  • Add the sortable module as a dependency to your application module: slickCarousel
var myAppModule = angular.module('MyApp', ['slickCarousel'])

This directive allows you to use the slick-carousel plugin as an angular directive. It can be specified in your HTML as either a <div> attribute or a <slick> element.

    <slick infinite=true slides-to-show=3 slides-to-scroll=3>
    ...
    </slick>

    <slick
        settings="slickConfig" ng-if="numberLoaded">
    </slick>

Attributes & Event

settings: optional Object containing any of the slick options. Consult here.

  • enabled should slick be enabled or not. Default to true. Example below
  • method optional containing slick method. discussed below in detail
  • event optional containing slick event
$scope.slickConfig = {
    enabled: true,
    autoplay: true,
    draggable: false,
    autoplaySpeed: 3000,
    method: {},
    event: {
        beforeChange: function (event, slick, currentSlide, nextSlide) {
        },
        afterChange: function (event, slick, currentSlide, nextSlide) {
        }
    }
};

Enable/disable slick

Slick can be easily switched on and off by using enabled settings flag.

    $scope.slickConfig = {
        enabled: true,
    }
    $scope.toggleSlick = function() {
      $scope.slickConfig.enabled = !$scope.slickConfig.enabled;
    }
    <slick settings="slickConfig">
     ...
    </slick>
    <button ng-click="toggleSlick()">Toggle</button>

Method

  1. All the functions in the plugin are exposed through a control attribute.
  2. To utilize this architecture, and have two-way data-binding, define an empty control handle on scope:
    $scope.slickConfig = {
        method: {}
    }
  1. Pass it as the value to control attribute. Now, you can call any plugin methods as shown in the example.
<button ng-click="slickConfig.method.slickGoTo(2)">slickGoTo(2)</button>
<button ng-click="slickConfig.method.slickPrev()">slickPrev()</button>
<button ng-click="slickConfig.method.slickNext()">slickNext()</button>
<button ng-click='slickConfig.method.slickAdd("<div>New</div>")'>slickAdd()</button>
<button ng-click='slickConfig.method.slickRemove(3)'>slickRemove(3)</button>
<button ng-click='slickConfig.method.slickPlay()'>slickPlay()</button>
<button ng-click='slickConfig.method.slickPause()'>slickPause()</button>

Slide data

For change slide content, you have to set ng-if to destroy and init it

  • controller:
    $scope.number = [{label: 1}, {label: 2}, {label: 3}, {label: 4}, {label: 5}, {label: 6}, {label: 7}, {label: 8}];
    $scope.numberLoaded = true;
    $scope.numberUpdate = function(){
        $scope.numberLoaded = false; // disable slick

        //number update

        $scope.numberLoaded = true; // enable slick
    };
  • html:
    <script type="text/ng-template" id="tpl.html">
        <h3>{{ i.label }}</h3>
    </script>

    <slick ng-if="numberLoaded">
        <div ng-repeat="i in number">
            <div class="" ng-include="'tpl.html'"></div>
        </div>
    </slick>

Global config

  config(['slickCarouselConfig', function (slickCarouselConfig) {
      slickCarouselConfig.dots = true;
      slickCarouselConfig.autoplay = false;
  }])

FAQ

Q: After change data, could i keep the current slide index? A: For this directive, this will destroy and init slick when updating data. You could get current index by event. example:

    $scope.currentIndex = 0;
    $scope.slickConfig = {
        event: {
            afterChange: function (event, slick, currentSlide, nextSlide) {
              $scope.currentIndex = currentSlide; // save current index each time
            }
            init: function (event, slick) {
              slick.slickGoTo($scope.currentIndex); // slide to correct index when init
            }
        }
    };

Examples

Now to run the samples in your local machine you just need to run:

grunt serve

so you will start a web server on http://localhost:8000

now acess the folder examples: http://localhost:8000/examples/#/

Creator

@devmark

Versions

Version
3.1.7
3.0.10