2015-02-17 7 views
5

próbuję przełączyć z wersja Smart-Table 1.x do Kątowymi UI-siatki (wersja 3.0), w zastępstwie NG-siatki.
Podobał mi się prawie wszystko na temat ui-grid, ale jedna rzecz doprowadza mnie do szału. W tabeli smart-table znajduje się wartość dla dataRow, która jest wygodnym sposobem odwoływania się do encji w tabeli.Użycie Angular UI-Grid, w jaki sposób uzyskać dostęp do danych jednostki wiersza bez użycia wyboru wiersza?

Używałem go do zapełniania szablonu html w celu dołączenia informacji o polu z obiektu, podobnie jak ng-click="$parentScope.edit(dataRow.id)" w szablonie html umieszczonym w komórce siatki.

Jednak w ui-grid, nie mogę uzyskać dostępu do obiektu obiektu bez dokonywania formalnego wyboru wiersza lub komórki. Jakikolwiek wysiłek włożenia go w szablon komórki powoduje powstanie obiektu (row.entity), ale nie mogę uzyskać dostępu do żadnego z elementów encji, ponieważ są one niezdefiniowane. Jakieś pomysły?

Co więcej, udało mi się wykonać metodę w szablonie HTML, ale tylko te, które nie mają parametrów, a nie próbują użyć parametru z samej jednostki.

Oto mój szablon HTML, który pracował z inteligentnych tabeli:

<a data-toggle="tooltip" data-placement="top" title="View {{filteredRowCollection}}" ng-click="$parent.$parent.$parent.$parent.view(dataRow.id)" 
    class="glyphicon glyphicon-camera green"> 
</a> 
<a data-toggle="tooltip" data-placement="top" title="Edit {{selectionId}}" ng-click="grid.appScope.edit(row.entity.id)" 
    class="glyphicon glyphicon-pencil blue"> 
</a> 
<a data-toggle="tooltip" data-placement="top" title="Delete {{selectionId}}" ng-click="$parent.$parent.$parent.$parent.delete(dataRow.id)" 
    class="glyphicon glyphicon-trash red"> 
</a> 

starałem się użyć czegoś takiego z UI-siatki:

function edit(row){ 
    . . . 
}; 

row, w tym momencie jest obiekt, podobnie jak row.entity. Spodziewałem się, że będę mógł użyć czegoś takiego, jak row.entity.id, jedno z pól, ale jest to undefined.

+0

Mały błąd w wycięciu i wklejeniu. Linia ng-click dla edycji była w rzeczywistości jednym z moich testów. Co należy przeczytać, to ng-click = "grid.appScope.edit (row.entity.id)" –

+0

Edytowane zgodnie z życzeniem. Jednak powinieneś wiedzieć, że sam możesz edytować swoje pytania: poszukaj przycisku 'edit' tuż pod twoim pytaniem :) – ccjmne

Odpowiedz

4

Ten post może być przydatna, https://technpol.wordpress.com/2014/08/23/upgrading-to-ng-grid-3-0-ui-grid/

Zasadniczo trzeba ustawić zakres zewnętrznego do siatki, dzięki czemu można uzyskać dostęp do danych.

+0

Bardzo pomogłem! Działa, ale trafił w jednego dziwnego szkopułę i znalazł obejście. Użyłem cellTemplate dla jednego z pól kolumn i odwołałem się do pliku HTML. Dobrze pracował. Kiedy spróbowałem to samo dla cellHeader, hit błędów. W rezultacie działał HTML i umieszczał go w var, używając referencji var w kolumnie defs. Dobrze pracował. Po prostu okazało się to naprawdę dziwne. –