私はカスタムディレクティブで演奏し、私の場合に適したものを調理しました。 threshold
のための私の入力時に
私は(私はquota.threshold
は以下quota.size
に等しくなるようにしたい)に対して検証するモデルのプロパティを渡し、less-than-or-equal="quota.size"
ディレクティブを持っている:lessThanOrEqual
ディレクティブそれのlink
機能で
<input type="number" name="threshold"
ng-model="quota.threshold"
required
less-than-or-equal="quota.size" />
link: (scope, elem, attr, ctrl) ->
scope.$watch attr.lessThanOrEqual, (newValue) ->
ctrl.$setViewValue(ctrl.$viewValue)
:
quota.size
とするとき、それはちょうどモデルに
threshold
の現在のビューの値を設定しようと
quota.size
変化を見るために開始
次に、scope.thresholdValidate(thresholdValue)
メソッドを呼び出すことで検証を行うパーサーが候補値を渡します。検証が成功した場合、このメソッドはtrue
を返し、それがない場合 - 現在のモデルの価値 - それは、そうでない場合は、新しい値を返します。例のほとんどのようにそれをunshiftingと反対として、
ctrl.$parsers.push (viewValue) ->
newValue = ctrl.$modelValue
if not scope.thresholdValidate viewValue
ctrl.$setValidity('lessThanOrEqual', false)
else
ctrl.$setValidity('lessThanOrEqual', true)
newValue = viewValue
newValue
私はパーサコレクションにパーサをプッシュしていますがここで
私はrequired
とnumber
ディレクティブを検証する角度たいので、私は私が有効と解析された数の持っている(私のために以下の作業を、しかしtext
入力のために、私はおそらく、解析作業を行う必要があります)場合にのみ、ここに来るので、であることを示唆しています私の遊び場:http://embed.plnkr.co/EysaRdu2vuuyXAXJcJmE/preview
を私を信頼し、この問題は、ここで議論されている。https://github.com/angular-ui/ui-utils/issues/25 – ProLoser
$ qサービスが応答を拒否した場合、フォーム入力要素にng-model-options = "{allowInvalid:true}"を追加する必要があります。モデルは、デフォルトで更新されません。クレイジーハァッ!私にはこれを働かせる一日の費用がかかります。 – danday74