我正在尝试使用自定义指令来制作有条件的必需语句。我添加的第一个条件是“firstInArray”,如果它是选择数组中的第一个元素,则它使元素成为必需元素(对于需要选择至少一个项目的 UI 是必需的,但你可以无限选择多个项目):
.directive('variableRequired', [
()->
return {
require: 'ngModel',
link: (scope, el, attrs, ctrl)->
vars = attrs.variableRequired.split(',')
condition = vars[0]
if condition is 'firstInArray'
item = vars[1]
arr = vars[2]
if scope[item] == scope[arr][0]
$(el).removeAttr('variable-required')
$(el).attr('required', 'required')
}
])
当我在指令中添加 scope.$apply() 时,应用程序会冻结(似乎是无限递归)。
有没有比自定义指令更好的方法来解决这个问题?如果不是,我的指令有什么问题?