AngularJS自定义输入指令。覆盖默认输入指令

时间:2014-02-25 11:04:34

标签: angularjs angularjs-directive

我正在尝试创建自定义输入指令,该指令将覆盖复选框输入的默认行为。我似乎找不到阻止默认复选框输入指令执行的解决方案。

我试图装饰输入,自定义指令的优先级设置为0。

<input type="checkbox" my-custom-directive="0" ng-model="MyList" />

我还尝试使用模板并替换不同的元素类型。

<div my-custom-directive="0" ng-model="MyList"></div>
// part of directive object
return {
    restrict: 'A',
    template: '<input type="checkbox" />',
    replace: true,
    terminal: true,
    priority: 0, ...
}

最终我要做的是将复选框输入绑定到数组,并创建行为,以便如果某个值是数组的成员,将检查输入,否则将不会检查。此外,如果用户检查输入框,指令会将提到的值添加到数组中。

1 个答案:

答案 0 :(得分:1)

最后我通过使用ngNonBindable指令解决了它。我真的不喜欢这个解决方案,因为在更复杂的场景中,我可能仍然希望对模板的某些元素使用绑定。如果其他人有更好的想法,我会接受答案。

return {
    restrict: 'A',
    template: '<input type="checkbox" ng-non-bindable />',
    replace: true,
    terminal: true,
    priority: 0, ...
}