【发布时间】:2015-07-17 06:26:06
【问题描述】:
我遇到了 AngularJS 的问题 - 我无法在 <select> 中显示所选值。
这是我的用例:
我有一个以 ng-repeat 开头的视图来显示组件。每个组件都包含一个用于选择增值税率的选项。创建新项目时,它看起来不错。但是当我编辑现有项目时,实际的增值税代码不会显示在选择中,而是看到默认选项“-- 选择增值税率--”而不是所选的增值税。
我的模型仅包含增值税率的 ID。
对于单个组件,我可以使用 $scope 中的变量来设置当前项目值,但在这里我可以有多个组件,每个组件都有自己的增值税率,所以我不知道如何在此处执行此操作:
这是我的代码
<div ng-repeat="i in items">
<label>{{i.id}}</label>
<input ng-model="i.title">
<select ng-model="i.vatRateId">
<option value="">--- Select an option ---</option>
<option ng-repeat="value in vatRates"
ng-selected="i.vatRateId == value.id"
value="{{value.id}}">{{value.value}}
</option>
</select>
</div>
还有对象:
$scope.vatRates = [
{ 'id': 1, 'value' : '20' },
{ 'id': 2, 'value' : '10' },
{ 'id': 3, 'value' : '7' }
];
$scope.items = [
{ 'id': 1, 'title' : 'Title1', 'vatRateId' : '1' },
{ 'id': 2, 'title' : 'Title2', 'vatRateId' : '2' },
{ 'id': 3, 'title' : 'Title3', 'vatRateId' : '3' }
];
这是一个现场演示来解释我的问题:
我无法为每个项目设置正确的选择值。
【问题讨论】:
-
当然,我们可以帮助您。但是你能先帮助我们吗?通过删除标记和样式的不相关部分来帮助我们?然后,为了避免猜测和假设,让我们了解您使用的一些对象和一些函数的结构,例如
updateVatRate或settings?为了额外的奖励,也许将一些变量/文本翻译成英文(看看这是一个英文网站)。我为您修复了一些问题 - 请添加有关丢失代码的更多详细信息,下次请花时间解决您的问题。 -
感谢@NewDev,我想我已经很清楚了 ^^ 没关系,这里有一个现场演示来解释我的问题。 plnkr.co/edit/OROLI64Q13PlJhSE4GOl?p=preview我无法为每个项目设置正确的值
-
你有一个演示很好,但问题应该是独立的 - 我更新了它,如果你觉得它没有反映你的实际问题,请修复编辑。
-
accept 答案有太多问题,对其他读者有用。
标签: javascript angularjs select angularjs-ng-repeat