ng 单击图像以选中单选框

ng-click on image to check a radiobox

本文关键字:单选框 单击 图像 ng      更新时间:2023-09-26

问题

如何使相应的下拉列表在单击图像或复选框时可见。 最后,无线电盒将被隐藏。

目前,单选按钮确实被选中,但它确实使选项正确显示? 我认为这是一个范围界定问题。

实时代码

我有一系列颜色和尺寸:

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

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" ng-checked="selected" name="colors" ng-model="$parent.myColor" ng-value="key" />
        <img ng-click="selected = true" ng-src="{{val.swatch_image}}" alt="">{{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>

目前,您定义了$parent.myColor以保存单选按钮的值。因此,如果您希望能够根据所选图像显示下拉列表,则可以像已经做的那样在 img 标记上使用ng-click,并为其分配新值。

<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" />
        <img ng-click="$parent.myColor = key" ng-src="{{val.swatch_image}}" alt="">{{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>

自己试试吧。