我的标记如下所示:
<select multiple="multiple" size="7"
ng-model="model.SelectedCars"
ng-options="car.Code as car.Name for car in model.Cars track by car.Code">
</select>
我已经使用以下内容初始化了我的范围:
$scope.model.SelectedCars = [];
$scope.model.Cars = [
{Name: 'Car 1', Code: 'id01'},
{Name: 'Car 2', Code: 'id02'},
{Name: 'Car 3', Code: 'id03'}
];
这一切都按照我想要的方式工作(汽车名称显示在列表框中,代码用作值)。当我从列表框中选择某些内容(甚至是多个值)时,$scope.model.SelectedCars数组最终会填充每个选定汽车的代码(1d 字符串数组)。
我的问题是,为什么如果我手动将有效代码推送到$scope.model.SelectedCars数组中,它是否不会反映在所选的 UI 控件中。这仅在使用ng-optionsor时发生ng-repeat,似乎如果我将选项硬编码到它确实有效。
服务器只会将我选择的汽车模型作为一维代码(字符串)数组提供。我宁愿保留 ng-model 的数据结构,这样我就可以在发布之前不做任何更改就将其发送出去。
任何帮助表示赞赏!