我为复选框创建了一个自定义指令,可以在我的应用程序中使用。我已使用以下代码创建了复选框。
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>
问题
因为我正在使用标签的 来复制复选框的 id ,但我无法在ng-repeat中使用此复选框指令。我希望得到一个解决方案,因为我坚持这个。
提前致谢。
答案 0 :(得分:0)
拥有一个动态ID,每当有一个复选框的实例时自动递增,或者将其基于当前的ngRepeat迭代,并将其传递给指令。
或者,您可以构造HTML,以便标签隐式链接到输入而根本没有ID。在输入周围包装标签应该这样做。