1
現在、コントローラに変数を設定しようとしていますが、別の値がng-options
で選択されています。例えば、Companies
から選択されたものがtitle
である場合、myValue
は、特定の会社の対応するid
に設定されます。以下は、HTMLスニペットです:ng-optionが選択されたときにコントローラ変数を更新する
<select multiple="" class="form-control" ng-model="myValue"
ng-options="d.title for d in Companies"></select>
<select multiple="" class="form-control">
<option ng-placeholder="{{myValue}}"></option>
</select>
そして、私のCompany
、Companies
、およびコントローラでmyValue
:
$scope.getValues = function() {
$http.get('/route/to/names')
.success(function (data, status, headers, config) {
for (var i = 0; i < data.length; i++) {
$scope.Companies.push(new Company(data[i]['Title'],data[i]['ID']));
}
})
};
:
function Company(title, last, pw, id) {
this.title = title;
this.id = id;
}
$scope.Companies = [];
$scope.myValue = '';
そして、ここでは、その種Companies
配列をfucntionです
プログラムの目的は、選択されたに従ってデータベースからデータをさらにフェッチすることです。私がmyValue
をページにオプションとして設定したのは、そのアクションが達成されたかどうかを判断するためです。このような問題を解決する方法についてアドバイスをいただければ幸いです。ありがとう!
'で同棲適切会社のdのために - あなたの会社のコンストラクタでは 'title'と' id'の小文字を持っているが、あなたのforループには適切なケースがあるので、正しいケーシングを使用してください。 – KreepN
'myVal'の初期化を引き起こす何らかの' ActionEvent'がありませんか?あるいは、私のプログラムで与えられたデータバインディングのための選択肢の単なる選択ですか?ああ、大文字です。なぜなら、オブジェクトの特定のプロパティ「タイトル」と「ID」にアクセスしているからです。 – WakaChewbacca
あなたのモデルは空の文字列にバインドされていますので、あなたのselectがidでない最初のオプションを挿入すると仮定しています。それはあなたの選択に存在することによって拘束されます。あなたはあなたのコントローラーでそれを持つことさえできませんでした。あなたが選択をしたとき、それはスコープに追加されます。 – KreepN