0

次のjsbinを見てください

2 つのフィールドがあることがわかります。1 つは通常inputのフィールドで、もう 1 つは を参照する新しいフィールド タイプですexampleDirective。注意してください...私の実際のアプリケーションでは、これらのフィールドは JSON からプルされ、手動でfields配列に追加されません。

配列DefaultValue内の各レコードに を設定しました。fields繰り返しますが、これらのデフォルト値は JSON から取得されています。

RegularInputフィールドは、入力フィールド内にデフォルトを正しく表示しています。

そうではDirectiveInputありません。モデルを見てください。デフォルト値がディレクティブ内の入力フィールド (複数ある場合はフィールド) ではなく、フィールド自体に適用されていることがわかります。

DefaultValueこのような状況で仕事をする方法はありますか?そうでない場合...JSONからプルしている値をディレクティブフィールドに配置するための最良の方法は何ですか?

4

2 に答える 2

0

データをディレクティブに渡すことで問題を解決しました。

formlyConfig.setType(
{
    name: 'dirTest1',
    template: '<div directive-test checked="to.IsChecked" amount="to.CoverageAmount"</div>'
});

このアプローチでは、ディレクティブ内でさまざまな入力を設定するときに必要な値をディレクティブで指定IsCheckedして渡すことができます。CoverageAmountしたがって、pushこのフィールド タイプをフィールド配列に設定すると、次のように値を簡単に設定できます。

var newRow = {
    key: TestKey,
    type: dirTest1,
    templateOptions: {
        CoverageAmount: 12345,
        IsChecked: true
    }
};
vm.fields[i].fieldGroup.push(newRow);
于 2015-09-24T14:29:13.453 に答える