AngularJS <select> ng-options选择的值未正确设置</select>

时间:2014-06-11 08:07:59

标签: angularjs angularjs-ng-repeat

我有这个伪代码angularjs应用程序。您可以为每个人选择一个爱好,保存并重新加载。 但是,当我加载数据时,选择框没有选择正确的选项。 person.hobby存在且是正确的对象,但看起来没有正确设置ng-model。 我错过了什么吗?

<div ng-repeat="person in people">
    <p>{{ person.fullname }}</p>
    <select ng-model="person.hobby"
            ng-options="h.hobby_name group by h.category for h in hobbies">
    </select>
</div>

<script>

     //... controller...

     $http.get('/gethobbies/').succes(data) {
        hobbies = data;
     };

    $http.get('/getpeople/').succes(data) {
        people = data;
        // looks like this:  [{'fullname': 'bill gates', 'hobby': {'hobby_name': 'programming', 'category': 'computers'}, ...]
    };
</script>

1 个答案:

答案 0 :(得分:1)

需要将

ng-model设置为与要选择的ng-options数组中的对象完全相同的对象。 Angular使用对象引用来确定哪一个应该是活动的,因此有一个&#34;业余爱好对象&#34;与#34; hobby_name&#34;相同作为&#34;爱好&#34;中的一个对象是不足够的。它需要是对同一对象的引用。

有关详细信息,请参阅documentation for select