Angularjs 如何在Angular中处理重复的HTML复选框列表

Angularjs 如何在Angular中处理重复的HTML复选框列表,angularjs,json,facet,Angularjs,Json,Facet,我在侧边栏上有一个复选框列表,用于分面导航,当屏幕的宽度很小时,这个侧边栏是隐藏的,这是一个响应性设计,然后有一个按钮使非画布侧边栏(完全相同)出现。 我当前的代码是这样的,面是不同的权重: {{attr.Label} 我不确定您想做什么,但这是我迄今为止理解的代码 <li ng-repeat="attr in layout.facettes.weight"> <input id="facet{{$index}}" class="checkbox-

我在侧边栏上有一个复选框列表,用于分面导航,当屏幕的宽度很小时,这个侧边栏是隐藏的,这是一个响应性设计,然后有一个按钮使非画布侧边栏(完全相同)出现。 我当前的代码是这样的,面是不同的权重:


  • {{attr.Label}
  • 我不确定您想做什么,但这是我迄今为止理解的代码

        <li ng-repeat="attr in layout.facettes.weight">
            <input id="facet{{$index}}" class="checkbox-custom" type="checkbox" ng-checked="attr.IsSelected">
            <label for="facet{{$index}}" class="checkbox-custom-label">
                {{attr.Label}}
            </label>
        </li>
            <li ng-repeat="attr in layout.facettes.weight">
            <input id="facet2{{$index}}" class="checkbox-custom" type="checkbox" ng-checked="{{attr.IsSelected}}">
            <label for="facet2{{$index}}" class="checkbox-custom-label">
                {{attr.Label}}
            </label>
        </li>
    
  • {{attr.Label}
  • {{attr.Label}

  • 我不确定您想做什么,但以下是我目前了解的代码

        <li ng-repeat="attr in layout.facettes.weight">
            <input id="facet{{$index}}" class="checkbox-custom" type="checkbox" ng-checked="attr.IsSelected">
            <label for="facet{{$index}}" class="checkbox-custom-label">
                {{attr.Label}}
            </label>
        </li>
            <li ng-repeat="attr in layout.facettes.weight">
            <input id="facet2{{$index}}" class="checkbox-custom" type="checkbox" ng-checked="{{attr.IsSelected}}">
            <label for="facet2{{$index}}" class="checkbox-custom-label">
                {{attr.Label}}
            </label>
        </li>
    
  • {{attr.Label}
  • {{attr.Label}

  • 由于Angular中有双向绑定,我可以使复制的HTML元素具有与原始HTML相同的值,反之亦然。 ckecbox无法处理重复HTML复选框的原因是label元素的atribute。 只涉及第一个复选框。 所以我删除了label元素中的属性he,多亏了角度绑定,它们的状态保持同步

                    <li ng-repeat="valueAttr in attr.Values">
                    <div ng-click="valueAttr.IsSelected = !valueAttr.IsSelected">
                        <input class="checkbox-custom" type="checkbox" ng-checked="valueAttr.IsSelected">
                        <label class="checkbox-custom-label">
                            {{valueAttr.Label}}
                        </label>
                    </div>
                </li>
    
  • {{valueAttr.Label}

  • 请记住,Angular负责视图和模型之间的同步,这一点非常重要。如果没有这种机制,解决方案就不会这么简单。

    由于Angular中有双向绑定,我可以使复制的HTML元素与原始HTML元素具有相同的值,反之亦然。 ckecbox无法处理重复HTML复选框的原因是label元素的atribute。 只涉及第一个复选框。 所以我删除了label元素中的属性he,多亏了角度绑定,它们的状态保持同步

                    <li ng-repeat="valueAttr in attr.Values">
                    <div ng-click="valueAttr.IsSelected = !valueAttr.IsSelected">
                        <input class="checkbox-custom" type="checkbox" ng-checked="valueAttr.IsSelected">
                        <label class="checkbox-custom-label">
                            {{valueAttr.Label}}
                        </label>
                    </div>
                </li>
    
  • {{valueAttr.Label}

  • 请记住,Angular负责视图和模型之间的同步,这一点非常重要。如果没有这种机制,解决方案就不会这么简单。

    我尝试使用$index,第一个侧栏可以正常工作,但第二个侧栏不行。我尝试使用$index,第一个侧栏可以正常工作,但第二个侧栏不行