web-dev-qa-db-ja.com

AngularJS:特定の値を持たないng-optionsをフィルタリング

私はそのような選択でフィルタリングしたい:

<select ng-model="test" ng-options="c as c.label group by c.type for c in columns
| filter:{c.type:'!field'} | filter:{c.type:'!map'}"></select>

編集:列モデルの追加:

Columns = [
{
    name: "name",
    label: "Label",
    info: "Information displayed in help",
    type: "type",
    view: "html template",
    style: "min-width: 10em;",
    show: true
},
{
 ...
}
];

列はいくつかの目的に使用され、コードを最適化するために、Selectにも存在する必要がありますが、タイプが「フィールド」または「マップ」のエントリはありません

それでも、私はすべてから選択するようになります。タイプが「フィールド」と「マップ」であるエントリもです。それを行うきれいな方法はありますか?

31
Romain

AngularJS NOTフィルター

<select ng-model="test" ng-options="c as c.label group by c.type for c in columns
    | filter:{ type : '!field' }
    | filter:{ type : '!map' }">
</select>

フィドル

docsから:

"......!。"を文字列の前に付けることで、述部を否定できます。

」パターンオブジェクトを使用して、配列に含まれるオブジェクトの特定のプロパティをフィルタリングできます。たとえば、{name: "M"、phone: "1"}述語は、プロパティ名を持つアイテムの配列を返します「M」を含むプロパティ電話と「1」を含むプロパティ電話...」

71
AlwaysALearner