gpt4 book ai didi

javascript - 根据正确选择的单选按钮显示下拉菜单

转载 作者:行者123 更新时间:2023-11-30 17:20:20 25 4
gpt4 key购买 nike

问题:

如何显示所有单选按钮但只显示一个下拉菜单。这个显示的下拉菜单反射(reflect)了当前选择的 radiobtn?

Live Code

HTML:

<form ng-app="app" ng-controller="Ctrl">
<div class="color-pick" ng-repeat="(key, val) in productData.colors_and_sizes.data">
<input type="radio" name="colors" ng-model="myColor" ng-value="{{key}}" />{{key}}
<div class="size-pick">
<select ng-model="mySize" ng-options="size for size in val.sizes.split(',')"></select>
</div>
</div>
</form>

javascript:

var app = angular.module("app", []);

app.controller('Ctrl', function ($scope, $filter, $http) {
$scope.productData = {
"colors_and_sizes": {
"data": {
"Black": {
"sizes": "X Small, Small, Medium, Large, Xlarge, XX Large"
},
"Blue": {
"sizes": "X Small, Small, Medium, Large, Xlarge, XX Large"
}
}
}
};

});

最佳答案

在包装 select 语句的 div 上使用 ng-hide 或 show 指令。您可能遇到的问题是每个 ng-repeat 迭代都会创建它自己的范围,这意味着您创建的每个 ng-model 都是完全独立的。

您可以在这里看到:http://jsfiddle.net/v2r9y6x2/ ,当点击每个选择单选按钮时,它会在其下方打印一个不同的值,在这两种情况下,这是设置的 ng-Model 的值:

您可以通过使用 $parent.property 而不仅仅是属性名称来引用父作用域来解决此问题。这会将值分配给父 Controller 范围并按预期工作。

http://jsfiddle.net/djwruftr/

<form ng-app="app" ng-controller="Ctrl">
<div class="color-pick" ng-repeat="(key, val) in productData.colors_and_sizes.data">
<input type="radio" name="colors" ng-model="$parent.myColor" ng-value="key" />{{key}}
<div class="size-pick" ng-show="$parent.myColor==key">
<select ng-model="$parent.mySize" ng-options="size for size in val.sizes.split(',')"></select>
</div>
</div>
myColor: {{myColor}}<br/>
mySize: {{mySize}}
</form>

关于javascript - 根据正确选择的单选按钮显示下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25248941/

25 4 0