设置指令字段类型的默认值

Setting DefaultValue of a directive field type

请看下面jsbin

您会注意到有两个字段。一个是普通的 input,而另一个是引用 exampleDirective 的新字段类型。请注意...在我的实际应用程序中,这些字段是从 JSON 拉取的,而不是手动添加到 fields 数组。

我在 fields 数组中的每条记录上设置了 DefaultValue。同样,这些默认值是从 JSON.

中提取的

RegularInput 字段在其输入字段中正确显示默认值。

DirectiveInput 不是。请查看模型,您会看到默认值应用于字段本身,而不是指令中的输入字段(或字段,如果我有多个)。

有没有办法让 DefaultValue 在这种情况下工作?如果不是...将我从 JSON 中提取的值放置在指令字段上的最佳方法是什么?

只需更新传入的 json 即可将 "defaultValue" 包含在传递给指令的表单对象中。试试这个:http://jsbin.com/coyuriyazu/1/edit?html,js,output

我最终通过将数据传递到指令中解决了我的问题。

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

通过这种方法,我可以在我的指令中指定 IsCheckedCoverageAmount,并在指令中设置各种输入时传递我需要的值。所以,当我 push 这个字段类型到我的字段数组时,我可以像这样轻松地设置我的值:

var newRow = {
    key: TestKey,
    type: dirTest1,
    templateOptions: {
        CoverageAmount: 12345,
        IsChecked: true
    }
};
vm.fields[i].fieldGroup.push(newRow);