Skip to content

Commit 28df19f

Browse files
committed
Merge pull request #45 from 8eo/master
Add enabled option
2 parents c91575f + e3011d6 commit 28df19f

File tree

7 files changed

+46
-7
lines changed

7 files changed

+46
-7
lines changed

README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,13 @@ as either a `<div>` attribute or a `<slick>` element.
4343

4444
### Attributes & Event ###
4545
`settings`: optional `Object` containing any of the slick options. Consult [here](http://kenwheeler.github.io/slick/#settings).
46+
- `enabled` should slick be enabled or not. Default to true. Example below
4647
- `method` optional containing slick method. discussed [below](#method) in detail
4748
- `event` optional containing slick event
4849

4950
```javascript
5051
$scope.slickConfig = {
52+
enabled: true,
5153
autoplay: true,
5254
draggable: false,
5355
autoplaySpeed: 3000,
@@ -60,6 +62,23 @@ $scope.slickConfig = {
6062
}
6163
};
6264
```
65+
### Enable/disable slick ###
66+
Slick can be easily switched on and off by using `enabled` settings flag.
67+
```js
68+
$scope.slickConfig = {
69+
enabled: true,
70+
}
71+
$scope.toggleSlick = function() {
72+
$scope.slickConfig.enabled = !$scope.slickConfig.enabled;
73+
}
74+
```
75+
```html
76+
<slick settings="slickConfig">
77+
...
78+
</slick>
79+
<button ng-click="toggleSlick()">Toggle</button>
80+
```
81+
6382

6483
### Method ###
6584
1. All the functions in the plugin are exposed through a control

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-slick-carousel",
3-
"version": "3.1.2",
3+
"version": "3.1.3",
44
"homepage": "https://github.com/devmark/angular-slick-carousel",
55
"authors": [
66
"DevMark <[email protected]>"

dist/angular-slick.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* angular-slick-carousel
33
* DevMark <[email protected]>
44
* https://github.com/devmark/angular-slick-carousel
5-
* Version: 3.1.2 - 2015-11-24T02:43:00.279Z
5+
* Version: 3.1.3 - 2015-11-25T09:13:43.590Z
66
* License: MIT
77
*/
88

@@ -25,6 +25,7 @@ angular
2525
return {
2626
scope: {
2727
settings: '=',
28+
enabled: '@',
2829
accessibility: '@',
2930
adaptiveHeight: '@',
3031
autoplay: '@',
@@ -77,6 +78,7 @@ angular
7778

7879
initOptions = function () {
7980
options = angular.extend(angular.copy(slickCarouselConfig), {
81+
enabled: scope.enabled !== 'false',
8082
accessibility: scope.accessibility !== 'false',
8183
adaptiveHeight: scope.adaptiveHeight === 'true',
8284
autoplay: scope.autoplay === 'true',
@@ -141,10 +143,17 @@ angular
141143
var slickness = angular.element(element);
142144

143145
if (angular.element(element).hasClass('slick-initialized')) {
144-
return slickness.slick('getSlick');
146+
if(options.enabled) {
147+
return slickness.slick('getSlick');
148+
} else {
149+
destroy();
150+
}
145151
} else {
146152
angular.element(element).css('display', 'block');
147153

154+
if(!options.enabled) {
155+
return;
156+
}
148157
// Event
149158
slickness.on('init', function (event, slick) {
150159
if (typeof options.event.init !== 'undefined') {

dist/angular-slick.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-slick-carousel",
3-
"version": "3.1.2",
3+
"version": "3.1.3",
44
"main": "dist/angular-slick.js",
55
"repository": {
66
"type": "git",

src/slick.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ angular
1616
return {
1717
scope: {
1818
settings: '=',
19+
enabled: '@',
1920
accessibility: '@',
2021
adaptiveHeight: '@',
2122
autoplay: '@',
@@ -68,6 +69,7 @@ angular
6869

6970
initOptions = function () {
7071
options = angular.extend(angular.copy(slickCarouselConfig), {
72+
enabled: scope.enabled !== 'false',
7173
accessibility: scope.accessibility !== 'false',
7274
adaptiveHeight: scope.adaptiveHeight === 'true',
7375
autoplay: scope.autoplay === 'true',
@@ -132,10 +134,17 @@ angular
132134
var slickness = angular.element(element);
133135

134136
if (angular.element(element).hasClass('slick-initialized')) {
135-
return slickness.slick('getSlick');
137+
if(options.enabled) {
138+
return slickness.slick('getSlick');
139+
} else {
140+
destroy();
141+
}
136142
} else {
137143
angular.element(element).css('display', 'block');
138144

145+
if(!options.enabled) {
146+
return;
147+
}
139148
// Event
140149
slickness.on('init', function (event, slick) {
141150
if (typeof options.event.init !== 'undefined') {

test/main.spec.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ describe('angular slick testing', function () {
2424
function compileTemplate(template) {
2525
var el = $compile(angular.element(template))(scope);
2626
scope.$digest();
27+
$timeout.flush();
2728
return el;
2829
}
2930

@@ -80,6 +81,7 @@ describe('angular slick testing', function () {
8081

8182
scope.slickConfig.autoplay = false;
8283
scope.$digest();
84+
$timeout.flush();
8385
expect(scope.isDestroy).toBe(true);
8486
expect(element.hasClass('slick-initialized')).toBe(true);
8587

0 commit comments

Comments
 (0)