gpt4 book ai didi

javascript - Angular 自定义复选框指令在 ng-repeat 中不起作用

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

我已经为复选框创建了一个自定义指令,可以在我的应用程序中使用。我使用以下代码创建了复选框。

JS

angular.module("myApp")
.component("ngCheckbox", {
template:
'<div class="ng-control-checkbox">' +
'<input id="check" type="checkbox" data-ng-model="$ctrl.checked" class="checkbox">' +
'<label for="check">'+
'<span data-ng-bind="$ctrl.label"></span>' +
'</label>' +
'</div>' +
'',

bindings: {
label: '=?',
checked: '='
},
controller: function () {
var $ctrl = this;
}
});

CSS

  .ng-checkbox label{
cursor: pointer;
margin-left: 20px;
}
.ng-checkbox label:before {
content: "\e911";
cursor: pointer;
color: #84919A;
}
.checkbox {
display: none;
}
.checkbox:checked + label:before {
content: "\e910";
cursor: pointer;
color: $color_forest_green;
}

HTML

      <div data-ng-repeat="notification in notificationList" >
<ng-checkbox data-checked="notification.selected"></ng-checkbox>
<div>
  • 我使用 CSS::before 来更改内容。我不想为此编写任何 JS。
  • 我无法更改 HTML 结构,因为我必须使用应用程序特定的图标作为复选框的 CSS 内容

问题

由于我将复选框的 id 与标签的 for 绑定(bind),我无法在 ng-repeat 中使用此复选框指令。我希望能找到解决方案,因为我陷入了困境。

提前致谢。

最佳答案

拥有一个动态 ID,可以在每次出现复选框实例时自动递增,也可以基于当前 ngRepeat 迭代并将其传递到指令中。

或者,您可以只构造 HTML,以便标签隐式链接到根本不需要 ID 的输入。将标签包裹在输入周围应该可以做到这一点。

关于javascript - Angular 自定义复选框指令在 ng-repeat 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39748938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com