アプリケーションでグリッドを作成するために、 ng-grid の新しい 3.0 リリースui-gridを使用しています。私がやろうとしているのは、テーブル内の編集可能なセルの 1 つを、Angular ファクトリで取得したデータで満たされたng-optionsドロップダウンにすることです。
ui-grid のeditableCellTemplate機能を使用してこれを実行しようとしています。
コード例を次に示します。
HTML:
<div ui-grid="gridOptions" ui-grid-edit class="grid"></div>
コントローラ:
$scope.gridOptions = {
enableSorting: true,
enableFiltering: true,
enableCellEditOnFocus: true,
columnDefs: [
{ field: 'name',
sort: {
direction: 'desc',
priority: 1
}
},
{ field: 'gender', editType: 'dropdown', enableCellEdit: true,
editableCellTemplate: 'temp.html' },
{ field: 'company', enableSorting: false }
]};
temp.html:
<div>
<select ng-model="row.entity.gender" data-ng-options="d as d.type for d in genderType">
<option value="" selected disabled>Choose Gender</option>
</select>
</div>
これがコード付きのプランカーです。[注:これは単なるサンプル コードです。ng-options の配列は、実際のコードで angular factory から取り込まれており、スコープで宣言されていません。データは動的であるため、editDropdownOptionsArray はおそらく機能しません。]
ui-gridでこれを行うことは可能ですか? ng-option コードを HTML ページに配置すると期待どおりに機能するため、おそらくスコープの問題だと思いましたが、ui-grid ドキュメントから収集できるのは、temp.html ファイルがスコープ内にある必要があることです。 . 私はこれがまだ不安定なリリースであることを知っていますが、この問題に関する助けをいただければ幸いです!
**2015 年 3 月 31 日更新:**
このソリューションを試してみて、うまくいかない場合は注意してください。1 月に、外部スコープのコードが から にリファクタリングされgetExternalScopes()
ましたgrid.addScope.source
。https://github.com/angular-ui/ng-grid/issues/1379
新しいコードで更新された plunkr は次のとおりです。Click Me!