我正在使用Angular JS,我需要使用Angular JS设置一个列表控件的选定选项。如果这很荒谬,请原谅我,但我是Angular JS的新手
下面是我的HTML的列表控件:
<select ng-required="item.id==8 && item.quantity > 0" name="posterVariants"
ng-show="item.id==8" ng-model="item.selectedVariant"
ng-change="calculateServicesSubTotal(item)"
ng-options="v.name for v in variants | filter:{type:2}">
</select>
在它被填充之后,我得到
<select ng-options="v.name for v in variants | filter:{type:2}" ng-change="calculateServicesSubTotal(item)"
ng-model="item.selectedVariant" ng-show="item.id==8" name="posterVariants"
ng-required="item.id==8 && item.quantity > 0" class="ng-pristine ng-valid ng-valid-required">
<option value="?" selected="selected"></option>
<option value="0">set of 6 traits</option>
<option value="1">5 complete sets</option>
</select>
如何将value="0"
的控件设置为选中?
9条答案
按热度按时间8ljdwjyq1#
我希望我理解你的问题,但是
ng-model
指令在控件中的选定项和item.selectedVariant
的值之间创建了一个双向绑定。这意味着在JavaScript中更改item.selectedVariant
或更改控件中的值会更新另一个。如果item.selectedVariant
的值为0
,则应选择该项。如果
variants
是一个对象数组,则item.selectedVariant
必须设置为其中一个对象。我不知道你的范围内有哪些信息,但这里有一个例子:JS:
超文本标记语言:
这将使“B”项处于选中状态。
kb5ga3dv2#
我不知道这是否会帮助任何人,但当我面临同样的问题时,我想分享我是如何得到解决方案的。
您可以在
ng-options
中使用track by属性。假设你有:
您可以将
ng-options
命名为:希望这对将来的人有所帮助。
tmb3ates3#
如果您将值0分配给
item.selectedVariant
,则应自动选择该值。查看http://docs.angularjs.org/api/ng.directive:select上的示例,它默认选择红色,只需指定$scope.color='red'
。0sgqnhkj4#
我看到这里已经写了很好的答案,但有时写在其他形式相同的可以是有帮助的
deyfvvtc5#
简单方法
如果你有一个用户作为响应或者你定义的数组/JSON,首先你需要在控制器中设置所选的值,然后你在html中放置相同的模型名称。我写这个例子是为了用最简单的方式解释。
简单示例
内部控制器:
你的HTML
复杂示例
内部控制器:
你的HTML
nuypyhwy6#
它可以是有用的。绑定并不总是有效的。
比如你从rest-service中填充选项列表源模型。所选值在填写列表之前已知并已设置。在执行rest-request和$http list选项后完成。但未设置所选选项。由于未知原因,影子$digest中的AngularJS执行时没有绑定选择。我用jQuery来设置selected。这很重要!在阴影中的Angular 添加前缀到属性值“值”的值由ng-repeat optinos生成。对于int,它是“number:“。
k4ymrczo7#
请尝试以下操作:
JS文件
HTML文件
ijnw1ujt8#
这是我用来设置选定值的代码
在一个有Angular 的框架上试试这个
0h4hbjxa9#
JS: