<!DOCTYPE html>
<html>

<head>
  
  <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.8/slick.css" />
  <link rel="stylesheet" href="style.css" />


  <script data-require="jquery@*" data-semver="2.1.4" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.8/slick.min.js"></script>
  
  
  
  <script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.3/angular.min.js"></script>
  
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-animate.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-aria.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-messages.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.0.9/angular-material.js"></script>

  <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.3/angular-route.min.js"></script>
  <script src="//rawgit.com/devmark/angular-slick-carousel/master/dist/angular-slick.js"></script>
  <script src="script.js"></script>

</head>

<body ng-app="app">

  <div class="container" ng-controller="SlickController">

    <slick class="slides" data="viewData" dots="true" ng-if="viewLoaded" settings="slickPanels">
      <div ng-repeat="view in viewData">
        <div class="slide slide-4">
          <div>{{view.text}}</div>
        </div>
      </div>
    </slick>

    <button ng--click="updateView()">
      Update View
    </button>


  </div>
</body>

</html>
// Code goes here

(function() {
  "use strict";
  angular.module('app', ['slickCarousel' ]);

  function SlickController($rootScope, $window, $location, $scope, $timeout, $compile) {

    var vm = this;
    $rootScope.viewData = [{
      text: "My View1",
      property: 0
    }, {
      text: "My View1",
      property: 0
    }, {
      text: "My View1",
      property: 0
    }];
    $rootScope.viewLoaded = true;

    $rootScope.updateView = function() {
      $rootScope.viewLoaded = false;
      $rootScope.viewData.push({
        text: "My View" + $rootScope.viewData.length
      });
      $timeout(function() {
        $rootScope.viewLoaded = true;
      });
    };

    $scope.slickPanels = {
      method: {},
      dots:false,
      infinite: false,
      speed: 300,
      slidesToShow: 4,
      slidesToScroll: 1,
      autoPlay: false,
      adaptiveHeight: true,
      event: {
        beforeChange: function() {
          console.log("before change called");
        },
        afterChange: function() {
          console.log("after called");
        }
      }
    };

  }
  SlickController.$inject = ["$rootScope", "$window", "$location", "$scope", "$timeout", "$compile"];

  angular
    .module('app')
    .controller('SlickController', SlickController);
})();
/* Styles go here */

.slides {
  background-color: #eee;
}

.slide {
  color: #fff;
  /* width: 25%; */
  /* height: 120px; */
  font-size: 20px;
  line-height: 150px;
  text-align: center;
}

.slide-1 {background-color: red;}
.slide-2 {background-color: blue;}
.slide-3 {background-color: green;}
.slide-4 {background-color: orange;}

.slide p {
  color: #fff;
}