如何将一些模板应用于AngularJS中所有输入类型的复选框和无线电?

时间:2015-07-15 07:56:49

标签: javascript angularjs

我写了一些指令,将模板应用于复选框和广播。但是它需要在元素中添加类或属性。

.directive('checkbox', function () {
            return {
                restrict: 'C',
                link: function (scope, elem, attrs) {
                    elem.wrap('<span class="check"></span>');
                    elem.after('<span class="checkLtr"></span>');
                }
            };
        })

如何在不向元素添加/更改元素,类或属性的情况下添加此模板?

1 个答案:

答案 0 :(得分:1)

你可以让你的指令替换复选框元素,而不是

<input type="checkbox" class="checkbox">

你有

<my-checkbox />

你的指令代码看起来像

.directive('myCheckbox', function () {
    return {
        restrict: 'E',
        template: '<span class="check"><input type="checkbox"></span><span class="checkLtr"></span>',
        replace: true,
        link: function (scope, elem, attrs) {
        }
    };
})

如果需要,可以使用隔离范围绑定“已检查”值并在链接函数中对其进行操作。