设置指令字段类型的DefaultValue

时间:2015-09-23 14:40:54

标签: angularjs angular-formly

请查看以下jsbin

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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);