名前付きのng-repeatのリストがあります。私はこの名前を取って、彼の主題を取るためのパラメータとしてURLに渡したいと思います。今まで私がやったことは、私がその名前を渡して別のAPIから主題を得ることができるということです。しかし、問題は、最後の名前が彼の値を持つすべてのドロップダウンを置き換えることです:Angularjsの最初の値に基づく2番目の値を表示
<ul ng-repeat="person in persons">
<li ng-init="pass(person.name)">{{person.name}}</li>
<li>
<select>
<option ng-repeat="(key, value) in choices">{{value}}</option>
</select>
</li>
</ul>
Controller.js
$scope.person = {
[
{
"id": 1,
"name": "Mark"
},
{
"id": 2,
"name": "Jakob"
}
]
}
$scope.pass = function(name) {
$scope.name = name;
$http.get('url?name=' + $scope.name, {})
.then(function(response) {
$scope.choices = response.data;
},
function(errResponse) {
console.error('Error while fetching choices');
});
}
注:の末尾にperson.nameを渡すためにgetメソッドがありますURL。
HTMLからコントローラへのパスをどのように分離することができますか。以下のような
$scope.persons = [{
"id": 1,
"name": "Mark"
},
{
"id": 2,
"name": "Jakob"
}
];
$scope.pass = function(person) {
$scope.name = person.name;
$http.get('url?name=' + $scope.name, {}).then(function(response) {
person.choices = response.data;
},
function(errResponse) {
console.error('Error while fetching choices');
});
}
し、HTML:: おかげ
の代わりに、 '全体' person'オブジェクトを渡しますperson.name'を呼び出し、 'pass'メソッドで' person.name'を送ります。約束が成功した後、返された応答から 'person.subject'を更新してください。 –
私の正確なケースを更新しました –
下記の私の答えを参照してください –