angular-slick-carousel icon indicating copy to clipboard operation
angular-slick-carousel copied to clipboard

Carousel not destroying properly when settings object is updated.

Open decodedcreative opened this issue 9 years ago • 2 comments

Hi,

There however seems to be a bug with the plugin where its destroy method does not properly remove slides from the carousel instance.

angular-slick.js has the following Angular Watch which is triggered every time a change is made to the settings object:

return scope.$watch('settings', function (newVal, oldVal) { if (newVal !== null) { return destroyAndInit(); } }, true);

My carousel initially loads with 15 slides and every time the destroyAndInit function is run, another 15 slides are erroneously added to the carousel. Because of this I suspect the destroy function is not working as expected. Here is the code for it:

` destroy = function () {

    var slickness = angular.element(element);
    if (slickness.hasClass('slick-initialized')) {
      slickness.remove('slick-list');
      slickness.slick('unslick');
    }

    return slickness;
  };`

Any ideas?

decodedcreative avatar Nov 14 '16 15:11 decodedcreative

the selector is a class so it should be slickness.remove('.slick-list');

ericjames avatar Feb 10 '17 22:02 ericjames

Furthermore the jQuery Event handlers are not removed. So after destroying and (re-)init handlers get called twice. is there a slickness.off() jQuery call to remove handlers missing?

kryptografisch avatar Jan 25 '18 10:01 kryptografisch