PageRenderTime 58ms CodeModel.GetById 32ms RepoModel.GetById 0ms app.codeStats 0ms

/lib/slickback/collection.js

https://github.com/dhoman/slickback
JavaScript | 42 lines | 27 code | 8 blank | 7 comment | 2 complexity | ed3c6b33ccac0b7e7949dfb6ef5782c9 MD5 | raw file
  1. (function() {
  2. "use strict";
  3. var linkGlobal = (typeof global === 'undefined') ? this : global;
  4. var linkModule = (typeof exports === 'undefined') ? this : exports;
  5. var Slickback =
  6. linkModule.Slickback || linkGlobal.Slickback || require('../slickback'),
  7. use = Slickback.use,
  8. CollectionEventsMixin = Slickback.CollectionEventsMixin,
  9. EventTranslationMixin = Slickback.EventTranslationMixin,
  10. CollectionAdaptorMixin = Slickback.CollectionAdaptorMixin;
  11. var imported = use(linkGlobal, [
  12. { symbol: '_', module: 'underscore' },
  13. { symbol: 'Backbone', module: 'backbone' }
  14. ]),
  15. _ = imported._,
  16. Backbone = imported.Backbone;
  17. var exportNamespace = Slickback;
  18. /**
  19. * NOTE: If extending Collection with another initializer,
  20. * be sure to initialize these mixins.
  21. */
  22. var initializeMixins = function() {
  23. this.installDataViewEventHandlers();
  24. this.bindCollectionEventTranslations();
  25. };
  26. var mixin_members = _.extend({ initialize: initializeMixins },
  27. CollectionEventsMixin,
  28. EventTranslationMixin,
  29. CollectionAdaptorMixin);
  30. /**
  31. * A Backbone.Collection adapted to be used as a Slick.Data.DataView.
  32. */
  33. exportNamespace.Collection = Backbone.Collection.extend(mixin_members);
  34. }).call(this);