code: function (options) {
              this.multiple = angular.isDefined(options.attrs.multiple);
              this.cyclic = angular.isDefined(options.attrs.kbCyclic);
              angular.extend(this, options);
              if (this.ngModel) {
                  this.ngModel.$render = function () {
                      // Change the selection to model.
                      if (this.multiple) {
                          this.selected = this.ngModel.$viewValue;
                          if (angular.isArray(this.selected) === false) {
                              if (angular.isDefined(this.selected)) {
                                  $log.error(this.identifier, 'ng-model(multiple) must be an array, got:', this.selected);
                              }
                              this.selected = [];
                          }
                      } else {
                          this.selected[0] = this.ngModel.$viewValue;
                      }
                      // Activate the first item in the selection.
                      for (var i in this.selected) {
                          var kbItem = this._locate(this.selected[i]);
                          if (kbItem) {
                              this.active = kbItem;
                              break;
                          }
                      }
                  }.bind(this);
              }
          }
docs: @lends kbListController 
  
  @param {Object} options