Comment faire défiler un ngGrid pour afficher la sélection en cours?

Je suis réglage de la sélection de mes ngGrid à partir de JavaScript, appelant gridOptions.selectItem(). J'ai multiSelect définie sur false, donc il n'y a qu'une ligne sélectionnée. J'aimerais que la ngGrid pour faire défiler automatiquement pour afficher la nouvelle ligne sélectionnée, mais je ne sais pas comment faire si quelqu'un peut aider, s'il vous plaît?

Sur un sujet connexe: puis-je désactiver la sélection d'une ligne par un clic de souris? Si oui, comment?

Édité pour ajouter

Je tiens également à désactiver la navigation au clavier de la ligne sélectionnée, si possible.

Ce qui a fonctionné:

AardVark71 réponse travaillé. J'ai découvert que ngGrid définit une propriété ngGrid sur le gridOptions variable qui contient une référence à l'objet de la grille elle-même. Les fonctions sont exposés via les propriétés de cet objet:

$scope.gridOptions.selectItem(itemNumber, true);
$scope.gridOptions.ngGrid.$viewport.scrollTop(Math.max(0, (itemNumber - 6))*$scope.gridOptions.ngGrid.config.rowHeight);

Ma grille est fixée à 13 lignes haut, et ma logique, tente de faire la ligne sélectionnée s'affichent dans le milieu de la grille.

Je voudrais encore pour désactiver la souris & clavier changements apportés à la sélection, si possible.

Ce qui a également travaillé:

C'est probablement plus près de la Angulaires Way " et réalise la même fin:

//This $watch scrolls the ngGrid to show a newly-selected row as close to the middle row as possible
$scope.$watch('gridOptions.ngGrid.config.selectedItems', function (newValue, oldValue, scope) {
            if (newValue != oldValue && newValue.length > 0) {
                var rowIndex = scope.gridOptions.ngGrid.data.indexOf(newValue[0]);
                scope.gridOptions.ngGrid.$viewport.scrollTop(Math.max(0, (rowIndex - 6))*scope.gridOptions.ngGrid.config.rowHeight);
            }
        }, true);

bien que l'effet lorsqu'une ligne est sélectionnée en cliquant sur il peut être un peu déconcertant.

source d'informationauteur Max