Ich verwende ng-Grid's neues 3.0 Release ui-grid, um ein Raster in meiner Anwendung zu machen. Was ich versuche zu tun, ist eine der editierbaren Zellen in meiner Tabelle eine ng-options Drop-Down, die mit Daten gefüllt mit einer eckigen Fabrik gefüllt ist.Verwenden einer ng-Option Dropdown in einem UI-Grid editableCellTemplate [ng-Grid 3.x]
Ich versuche dies zu tun, indem Sie die editableCellTemplate Funktion des UI-Grid verwenden. Hier
ist einige Beispiel-Code:
HTML:
<div ui-grid="gridOptions" ui-grid-edit class="grid"></div>
Controller:
$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>
Hier ist ein plunker mit dem Code . [Hinweis: Dies ist nur Beispielcode. Array für ng-Optionen wird aus eckiger Fabrik in aktuellem Code eingezogen und nicht im Umfang deklariert. editDropdownOptionsArray wird wahrscheinlich nicht funktionieren, weil Daten dynamisch sind.]
Ist es möglich, dies mit UI-Grid zu tun? Ich dachte, es wäre vielleicht ein Problem des Umfangs, denn wenn ich den ng-Optionscode in meine HTML-Seite schreiben würde, funktionierte das wie erwartet, aber was ich aus der ui-grid-Dokumentation entnehme, ist, dass die temp.html-Datei im Bereich sein sollte . Ich weiß, dass dieses Zeug immer noch in instabiler Version ist, aber jede Hilfe in dieser Angelegenheit wäre willkommen!
UPDATE 2015.03.31:
Hallo Jungs, nur eine Note, wenn Ihr diese Lösung auszuprobieren und es funktioniert nicht. Im Januar wurde der Code für externe Bereiche von getExternalScopes()
auf grid.addScope.source
umgestaltet. https://github.com/angular-ui/ng-grid/issues/1379
Hier ist die aktualisierte plunkr mit dem neuen Code: Click Me!
Dies ist eine viel einfachere Antwort als die Verwendung eines tatsächlichen cellEditTemplate für Dropdowns. Wenn Sie sich im rowEdit-Modus befinden, lautet Ihr Ereignis zum Erkennen von Änderungen "gridApi.rowEdit.on.saveRow". – Mordred
Hallo. Ich sehe, dass Sie die Werte für "Typ" und im JSON-Format fest codiert haben. Nun, in meinem Fall bekomme ich eine Liste von Strings aus dB und jetzt werden die Werte nicht angezeigt .. was soll ich tun ?? –