单击div时更改复选框值

时间:2015-06-13 20:37:24

标签: javascript html css angularjs cordova

我有一个复选框,单击该复选框可将值及其标题保存在本地存储中。这个复选框位于div内。我希望在单击div中的任何位置时更改复选框值,但我无法弄清楚如何执行此操作。到目前为止,这是我的代码。

<div class="grid-menu">
    <div class="centering-and-alignment" ng-repeat="row in items | partition:3">

        <div class="grid-menu-item list__item list__item--tappable" ng-repeat="item in row">
            <label class="checkbox">
                <input type="checkbox" ng-model="item.value" name="item.title" ng-change="SaveCategories()">

                <div class="checkbox__checkmark"></div>
            </label>
            <ons-icon icon="{{item.icon}}"></ons-icon>
            <div class="grid-menu-item-label">{{item.title}}</div>
        </div>

    </div>
</div>

我尝试过更改

<div class="grid-menu-item list__item list__item--tappable" ng-repeat="item in row" >

<div class="grid-menu-item list__item list__item--tappable" ng-repeat="item in row" ng-click="item.value = !item.value" >

它可以工作但是它不会将值保存到本地存储,因此当我再次打开页面时,所有内容都将被取消选中。

我查看了其他类似的问题,但它们并不涉及本地存储。

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用其他标签。为此,您可以稍微修改标记:

<div class="grid-menu-item list__item list__item--tappable" ng-repeat="item in row">
    <label class="checkbox">
        <input type="checkbox" id="check-{{$index}}" ng-model="item.value" name="item.title" ng-change="SaveCategories();">
        <div class="checkbox__checkmark">{{item.value}}</div>
    </label>
    <label for="check-{{$index}}">
        <ons-icon icon="{{item.icon}}"></ons-icon>
    </label>
    <div class="grid-menu-item-label">
        <label for="check-{{$index}}">{{item.title}}</label>
    </div>
</div>