2

ドロップダウンメニューに表示したいオブジェクトのリストがあり、それを行うために ng-options を使用しています:

<select ng-model="query.color" ng-options="c.name + ' ' + c.shade for c in colors" />

ただし、使用しているオブジェクトの一部のプロパティが null である可能性があります。この例では、色の色合いを null に設定できます。

$scope.colors = [{
    name: 'black',
    shade: 'dark'
}, {
    name: 'yellow',
    shade: null
}];

ドロップダウンの値を にするのではなく、そのyellow nullままにしたいyellow

null 値を空の文字列に置き換える方法はありますか? ngModel.$parsers を使用してみましたが、$parsers は特定のオプションが選択された場合にのみ呼び出されます。オプション タグが生成される前に、置換を行うことができる時間はありますか?

$parsersの実装を含むjsfiddleを次に示します。

4

2 に答える 2

2

フィルターがそのトリックを行います。このようなもの:

myApp.filter('myFilter', function() {
    return function (c) {
        var text = c.name;
        if (null !== c.shade)
        {
            text += " " + c.shade;
        }
        return text;
    };
});

そして、あなたng-optionsは次のようになります:

ng-options="c | myFilter for c in colors"

このフィドルを参照してください: http://jsfiddle.net/EBnPe/

于 2013-08-27T23:00:55.467 に答える