A Simple Promise Based Controller For Backbone/Marionette Views

npm install backbone.promise-controller
1 downloads in the last week
5 downloads in the last month


Backbone Promise Based Controller

A Flexible Backbone/Marionette General Purpose Controller

Getting Started

This library is built on top of Backbone and used with Marionette, providing a Promise based controller solution.

  • Example Usage:
  var BlogPromiseController = Backbone.PromiseController.extend({

    initialize : function (options,resolve, reject) {
        var model = options.model;

        //Ad-hoc Filtering
        var privacy = options.model.get('privacy');
        if (!privacy) reject(this.getRejection(options));

        var blogs = model.blogs();

          .then(function() {
            if (blogs.length) {
            } else {
          .fail(function () {

      getResolution : function(options, blogs) {
        return {
          user  : options.model,
          collection : blogs

      getRejection : function (options) {
        return {
          user  : options.model,
          collection : null

  var BlogController = new BlogPromiseController({
    model : new Backbone.Model({
        blogs : function() {

  controller.then(function(model,collection) {
  });,collection) {

I use this in conjunction with AyncViewLoader (coming soon) to load views asynchronously while attaching them to a region on the DOM with a title and a spinner. This creates a simple, reusable, and testable controller for loading views. Allowing you to keep the business logic out of the view logic.


  • Backbone - v1.0.0+


In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.

Release History

  • 0.1.0 Initial release


Licensed under the MIT license.


Chris Miller

npm loves you