Socket
Socket
Sign inDemoInstall

angularjs-slickcarousel-directive

Package Overview
Dependencies
18
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    angularjs-slickcarousel-directive

Angularjs directive for slick carousel


Version published
Weekly downloads
3K
increased by39.41%
Maintainers
1
Install size
9.45 MB
Created
Weekly downloads
 

Readme

Source

Angular directive for slick-carousel

Summary

Usage


  • Add jquery, angular, slick-carousel and angular-slick-carousel to your code.
    <link rel="stylesheet" href="../node_modules/slick-carousel/slick/slick.css">
    <link rel="stylesheet" href="../node_modules/slick-carousel/slick/slick-theme.css">
    
    <script src="../node_modules/jquery/jquery.js"></script>
    <script src="../node_modules/angular/angular.js"></script>
    <script src="../node_modules/slick-carousel/slick/slick.js"></script>
    <script src="../node_modules/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

You need be running a server to see the samples:

Go to your terminal and run:

python -m SimpleHTTPServer

after this command you will be loading a python Server in you local machine in most the cases loads in the port 8000, you will be able to see the port when the server starts like that:

Serving HTTP on 0.0.0.0 port 8000 ...

so you can see the samples with this adress: http://localhost:8000/examples/#/

Author

Forked from original @devmark's project

Versions

  • 1.0.0 (May 2018) Initial release
  • 1.1.0 (November 2018) Updated dependencies
  • 1.2.0 (November 2018) Updated test suite

Keywords

FAQs

Last updated on 27 Nov 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc