0

これは私が探している非常に単純なもののように思えます.SOや他の場所で何も見つからないという事実は、本当に明白なものが欠けているに違いないと思いますが、これまでのところ私は困惑しています. 私の質問は; ng-options で設定された選択ボックスを使用するときに、リストを選択なし (つまり、selectedIndex = -1) に設定する方法はありますか? 非ドロップダウンとして設定された選択ボックスがあり、何も選択されていないリストを表示できるようにしたいと考えています。

以下に使用するコードを追加しますが、それはかなり標準的なものだと思います。curSearchResults 配列はサーバーから取り込まれます。正常に動作しているため、ここには含めません。リストをフェッチした後、selSearchRslt を null に設定し、新しい searchRslt() に戻そうとしましたが、どちらもリストの上部に空白のオプションを残します。必要に応じて選択ボックスを選択なしに設定するのは本当に簡単であることに慣れています...

コントローラーで:

function searchRslt() {
    this.RsltId = '';
    this.RsltName = '';
}
$scope.curSearchRslts = [];
$scope.selSearchRslt = new searchRslt();

マークアップで:

<select class="listPanel" 
   ng-model="selSearchRslt" 
   ng-options="rslt as rslt.RsltName for rslt in curSearchRslts" 
   ng-change="loadSearchRslt()"
   size="40" style="height: 300px; width: 480px">
</select>

これは、以下のコメントに対する応答です。

あなたが参照している質問を読み、マークアップにオプションを追加することに関するドキュメントを見ましたが、これは選択したインデックスを -1 に設定するのと同じ結果にはなりません。代わりに、未使用のオプションをリストに追加します。特に、リストがドロップダウンとして表示されない場合、このソリューションは UI の点で非常に扱いにくいと思います。私はその余分なオプションを望んでいません。実際に使用するオプションのみが必要ですが、何も選択されていません。答えが「それはできません」の場合は問題ありませんが、未使用のオプションを追加することは、selectedIndex を -1 に設定することと同じではありません。

さらに、デフォルトのオプションを設定する方法を探しているのではなく、オプションを選択しない方法を探しています。これを同じものと見なす方法がわかりません。デフォルトの選択を設定するのはとても簡単だと思います。私はそれについて質問を投稿したことはありません。選択しない方法を提供するものは何も見つかりませんでした。ここで何かが欠けていて、完全に脳死状態になっている場合は、申し訳ありませんが、言及されている質問がこの質問にどのように答えているかわかりません.

4

1 に答える 1