JSFiddle は次のとおりです。
問題の説明は次のとおりです。いくつかのロジックを含むフォームをラップするコントローラーがあり、ディレクティブ ハッシュ内でコントローラーとして定義できません。
次のように、ディレクティブからフィールドに動的に入力する機能が必要です。
App.Directive.SomeAwesomeDirective = ->
restrict: 'C'
link: (scope, element, attrs) ->
someValue = scope.someValue
field = element.find(".some-class")
scope.fieldValue = someValue
field.ngModel = "scope.fieldValue"
field.ngClass = "scope.someAwesomeClass"
monitorFields = (newValue, oldValue) ->
console.log "we are here"
console.debug newValue
console.debug oldValue
scope.addValue(newValue)
scope.$watch "scope.fieldValue", monitorFields, true
次の条件を満たす必要があります。
1) textfields の値が変更されたら、scope.fieldValue を更新したい。2) これが発生した後、検証のために新しい値を使用して addValue メソッド (ラッピング コントローラーで定義) を呼び出す必要があります。3) addValue メソッドは someAwesomeClass スコープ変数を設定し、入力フィールド クラスを更新する必要があります。4) 適用される ngClasses は ng-valid/ng-invalid です。フォーム検証は、これらのクラスに対応して正しく機能する必要があります
私のjsfiddleに見られるように、これらのことは現在起こっていません.理由はわかりません...
ありがとう!