カスタム ディレクティブを使用して、条件付きの必須ステートメントを作成しようとしています。追加した最初の条件は「firstInArray」で、選択肢の配列の最初の要素である場合に要素を必須にします (少なくとも 1 つの項目を選択する必要がある 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() を追加すると、アプリがフリーズします (無限再帰のようです)。
カスタムディレクティブよりもこれにアプローチする良い方法はありますか? そうでない場合、私のディレクティブの何が問題になっていますか?