Smart-Tableバージョン1.xからAngular i-grid(バージョン3.0)、-の代わりに)に切り替えようとしていますng-grid。
私はi-gridのほとんどすべてが好きですが、1つのことが私を夢中にさせています。 smart-tableには、dataRow
の値があります。これは、テーブル内のエンティティを参照する便利な方法です。
私がそれを使用していたのは、グリッドセル内に配置されたhtmlテンプレート内のng-click="$parentScope.edit(dataRow.id)"
のようなエンティティからのフィールド情報を含めるためにhtmlテンプレートにデータを入力することでした。
ただし、i-gridでは、正式な行またはセルを選択せずにエンティティオブジェクトにアクセスできないようです。セルテンプレートに含めると、オブジェクト(row.entity
)が作成されますが、エンティティ要素にアクセスできず、未定義として表示されます。何か案は?
さらに、htmlテンプレートでメソッドを実行することはできましたが、パラメーターのないメソッドのみであり、エンティティ自体からパラメーターを使用しようとしているものではありません。
これがsmart-tableで動作していた私のhtmlテンプレートです:
<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>
私はこのようなものをi-gridで使おうとしていました:
function edit(row){
. . .
};
row
、この時点ではrow.entity
と同様にオブジェクトです。フィールドの1つであるrow.entity.id
のようなものを使用できると期待していましたが、それはundefined
です。
この投稿は役に立ちます https://technpol.wordpress.com/2014/08/23/upgrading-to-ng-grid-3-0-ui-grid/
基本的に、データにアクセスできるように、グリッドの外部スコープを設定する必要があります。