0

请看下面的jsbin

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

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

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

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

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

4

2 回答 2

1

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

于 2015-09-23T14:53:37.010 回答
0

我最终通过将数据传递给指令来解决我的问题。

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);
于 2015-09-24T14:29:13.453 回答