web-dev-qa-db-ja.com

Angular UI-Gridを使用して、行選択を使用せずに行エンティティデータにアクセスするにはどうすればよいですか?

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です。

5
Ted Herrlich

この投稿は役に立ちます https://technpol.wordpress.com/2014/08/23/upgrading-to-ng-grid-3-0-ui-grid/

基本的に、データにアクセスできるように、グリッドの外部スコープを設定する必要があります。

4