AngularJS が常に選択でレンダリングする空のオプションを削除する方法について、私は高低を検索してきました。オプションがコードに直接配置されたJSON配列から派生している場合、これを行う多くの情報が見つかりましたが、データオブジェクトを操作するときにこの空のオプションを削除することについては何も見つかりません.
データベースに「foo」というオブジェクトがあり、「foo」には「name」と「bar_id」の両方があるとします。
データオブジェクトでこれを行うことについて誰かが私に手がかりを与えることができますか?
参照: Angular JS 選択オプションから空白オプションを削除
http://jsfiddle.net/MTfRD/3/ (これは、上記の SO の質問からの誰かのフィドルです。コードは私のものではありませんが、そのフィドルから取得したものです。)
JS:
function MyCtrl($scope) {
$scope.typeOptions = [
{ name: 'Feature', value: 'feature' },
{ name: 'Bug', value: 'bug' },
{ name: 'Enhancement', value: 'enhancement' }
];
$scope.form = {type : $scope.typeOptions[0].value};
}
foo.name と foo.bar_id を取得したい。foo.name をオプション ラベルに、foo.bar_id を値にします (たとえば<option value="foo.bar_id">foo.name</option>
、各 foo について、foo.bar_id はレコード内の識別パラメーターになり、「変更時」にプルアップして表示します (選択するとすぐに)オプションの)。
これを設定するために考えられるすべてのことを試しましたが、何もうまくいかないようです。最悪の場合、何も言わずに失敗して、私が何を間違っているのか分からないか、または foo がオブジェクトではないと不平を言って、私を際限なく苛立たせます。(「foo」は、私が取り組んでいる実際のコードでAJAXリクエストによってロードされており、他の場所ではオブジェクトとして正常に機能します-NDAにより、実際のコードを共有することは禁じられていますが、申し訳ありません。)
上記の他のスレッドの例を使用するとng-model="typeOptions"
、テンプレート内の select タグに次のようなものを割り当てることは理解できますが、「typeOptions」を取得して foo にアクセスし、foo.name をオプション ラベルにし、foo.bar_id をオプション値にする方法を理解しています。 ? また、オプションのデフォルトの角度値 (生成されたインデックスのように見えるもの) は問題ありませんが、タスクを完了するために foo.bar_id を呼び出す必要があるため、「どこかに」ある必要があります。
助けていただければ幸いです。現在、私はオプション自体でハックな ng-repeat にこだわっていますが、これはベスト プラクティスではないことを理解しています。 、私はそれらをうまく使用できるようになります。ありがとう!