用 ng-grid 列填充 select

populate a select with ng-grid columns

我有一个 ng-grid,我希望能够在特定列上进行搜索。用户输入一些文本并从下拉列表中选择一列。我的用户体验专家不太喜欢 ng-grid 支持的 search-field-in-every-column-header。

这是我的 Plunker: http://plnkr.co/edit/WofBDA6QQkCDcwDMznzf?p=preview

(我还没有理会文本字段,到目前为止只是担心字段选择器)

我有一个方法可以获取每个字段的字段和显示名称,并用选项填充我的 select,但出于某种原因,它给了我一个空的第一个选项。我不想要一个空的 - 如果它看起来像这样,我当然不想要:

<option value="? undefined:undefined ?"></option>

我希望它默认为我选择的字段(在 plunker 示例中,我希望它默认为 'age')

我不明白为什么我会得到一个未定义的选项 - 除非是因为在完全定义 colDef 之前控件由我的 getFilterFields() 函数呈现。我尝试了各种延迟 getFilterFields() 函数的方法 - 我使用了 init: gridInit 参数,但到目前为止,没有任何乐趣。

我如何保证 1] 我的下拉列表仅包含有效列,并且 2] 其中之一是预selected?

最好使用ng-options并将模型设置为您要选择的选项。

<select ng-model="selectedItem"
        ng-options="item.value as item.name for item in filterOptions.filterFields">
</select>

并在控制器中设置:

$scope.selectedItem = "age"; // equal to the value of the default option