0

(v6.4.xw/AngularJS 1.2.x を使用してangular-formlyいます) フィールドの式プロパティにより、フィールドが有効と無効の間で動的に切り替わる場合、無効に切り替えても、そのフィールドに以前に入力された値はモデルから削除されません。例えば:

  1. Formlyの高度なレイアウトの例を使用する
  2. が有効になるようにを入力します
  3. 姓の値を入力してください
  4. が再び無効になるようにの値を削除します
  5. 姓が無効になっていても、モデルにはに入力されたデータが含まれていることに注意してください。

disabled標準の HTML フォームの送信がどのように機能するかを考えると、モデルにはそのフィールドの値が含まれていないことが予想されます。

無効になっているフィールドのデータを送信しないようにする必要があるため、これが意図された動作である場合 (そして、それが意図されているかどうかはわかりexpressionPropertiesません...)、原因が発生するたびに値の削除を達成する方法について誰かが考えを提供できますか?無効にするフィールド?

4

1 に答える 1

1

kentcdodds のコメントのおかげで、私は正しい方向に進み、何かを機能させるのに十分な部分をドキュメントで見つけることができました。私の最も差し迫った仕事では、無効にしたときにモデルから削除するためのラジオオプションが必要でしたが、それもチェックを外すことになりました. これは、radio入力タイプを拡張し、 およびlinkにアクセスするための関数を追加することで実現scopeしましたelement。以下は、それがどのように見えるかの線に沿ったものです。

app.config(['formlyConfigProvider', function (formlyConfigProvider) {
    formlyConfigProvider.setType({
        name: 'liveDisableRadio',
        extends: 'radio',
        link: function (scope, element) {
            scope.$watch('to.disabled', function (is_disabled) {
                if (is_disabled) {
                    delete scope.model[scope.options.key];
                    element.find(':radio:checked').prop('checked', false).trigger('change');
                }
            });
        }
    });
}])
于 2015-06-17T03:30:14.073 に答える