フォームには、フォームに特定のフィールドを持つカスタムコンポーネントがあります。フォームの最後にボタンがあります。ボタンはカスタムコンポーネントに、私は、変数のバインディングがsubFormValidは、カスタムコンポーネントでの検証が有効である場合にのみ有効である「subFormValid」双方向を持って、今...disabled.aはAureliaで正しく動作しません
disabled.bind="!(formValid && subFromValid)"
を持っています。したがって、サブフォームはいくつかのフィールドを検証し、subFormValid = trueを設定します。 "formValid"がfalseであっても、ボタンは現在有効になっています。 私はなぜそれが分かりません、そして、それは私をナッツを運転しています。私も...私が持っている私のクラスに続いて
<button type="submit" disabled.bind="wholeFormValid">Submit</button>
...
get wholeFormValid() {
console.log("validating form");
console.log(!(this.formValid && this.subFormValid));
return !(formValid && subFormValid);
}
Iを変数に関数getを追加し、そのように、それにコンソールログを追加すると、これまで行ってきましたコンソールには何百万ものラインが追加されましたが、私はそれを全時間見ることができました。私が最初にそれがログインしたページをロードすると...真
、検証フォーム
は、それから私は、サブフォームを記入し、コンソールをチェックします。コンソールは...
はまだ真
フォーム
を有効に示した、ボタンが有効になりました。
何らかの理由で、subFormValid = trueの場合、formValidに関係なく、ボタンが有効になります。
2つの条件が満たされない限り、ボタンを無効にする方法は誰にも分かりますか?私がしていることは、コンソールがまだ "true"を記録していてもボタンを無効にする必要があるにもかかわらず、subFormValidがtrueになるとただちにボタンを有効にします。
Smarty Streetsを使用してアドレスを検証する必要があり、他の場所でフォームのその部分を再利用できるようにするために、フォームにサブフォームがある理由が不思議に思えるのであれば、私は、入力を検証し、アドレスを検証するアドレスセクション用のカスタムコンポーネントを作成しました。それは
@bindable formIsValidated;
...
私はSmartyの路上で次に<smarty-streets form-is-validated.two-way="subFormValid"></smarty-streets>
...そう...
次のように使用して次に<require from="components/smarty-streets"></require>
のような形で呼び出されているとコンポーネントの検証に応じて、値をtrueからfalseに、またはその逆に変更します。私は、次を使用して、問題を再現しようとした