code: function (options) {
          return {
            options: options,
            render: function ($scope, $elem) {
              var _this = this, expression = $elem.find('tbody').html(),
                // Find the resources from the comment <!-- ngRepeat: item in items --> displayed by angular in the DOM
                // This regexp is inspired by the one used in the "ngRepeat" directive
                match = expression.match(/^\s*.+\s+in\s+(\w*)\s*/), ngRepeatAttr = match[1];
              if (!match) {
                throw new Error('Expected expression in form of "_item_ in _collection_[ track by _id_]" but got "{0}".', expression);
              }
              var oTable, firstCall = true, alreadyRendered = false, parentScope = $scope.$parent;
              parentScope.$watch(ngRepeatAttr, function () {
                if (oTable && alreadyRendered && !_isDTOldVersion(oTable)) {
                  oTable.ngDestroy();
                }
                // This condition handles the case the array is empty
                if (firstCall) {
                  firstCall = false;
                  $timeout(function () {
                    if (!alreadyRendered) {
                      oTable = _doRenderDataTable($elem, _this.options, $scope);
                      alreadyRendered = true;
                    }
                  }, 1000, false);  // Hack I'm not proud of... Don't know how to do it otherwise...
                } else {
                  $timeout(function () {
                    oTable = _doRenderDataTable($elem, _this.options, $scope);
                    alreadyRendered = true;
                  }, 0, false);
                }
              }, true);
            }
          };
        }
docs: Renderer for displaying the Angular way
  @param options
  @returns {{options: *}} the renderer
  @constructor