Angularjs 使用angular formly时动态添加指令

Angularjs 使用angular formly时动态添加指令,angularjs,angular-formly,Angularjs,Angular Formly,在与自定义模板一起使用时,添加一些指令(例如有条件地添加到表单的输入元素)的最佳方法是什么 我想这样使用它: $scope.formFields=[ { 关键字:“电子邮件”, 键入:“输入”, 模板选项:{ 键入:“电子邮件”, 占位符:“您的电子邮件地址”, 要求:正确, focusIf:“某些表达式”/您可以使用ngModelAttrs将angular形式的属性与ng focus if属性或任何其他自定义属性组合在一起 在您的情况下,您的代码应该如下所示: $scope.formFiel

在与自定义模板一起使用时,添加一些指令(例如有条件地添加到表单的输入元素)的最佳方法是什么

我想这样使用它:

$scope.formFields=[
{
关键字:“电子邮件”,
键入:“输入”,
模板选项:{
键入:“电子邮件”,
占位符:“您的电子邮件地址”,
要求:正确,

focusIf:“某些表达式”/您可以使用ngModelAttrsangular形式的属性与ng focus if属性或任何其他自定义属性组合在一起

在您的情况下,您的代码应该如下所示:

 $scope.formFields = [ {
        key: 'email',
        type: 'input',
         ngModelAttrs: {
              focusIf: {
                attribute: 'focus-if'   //directive declaration
              }
            },
        templateOptions: {
          type: 'email',
          placeholder: 'Your E-Mail address',
          focusIf: '', //directive default value
          required: true           
        }       
      }]

这是一个可以帮助你的方法:

多亏了@kentcdoffics和@aitnaser,我终于找到了实现所需行为的方法

只是想在这里分享扩展版本

其思想是在定义类型时使用属性:

formlyConfigProvider.setType({
名称:'输入',
模板:“”,
默认选项:{
ngModelAttrs:{
重点F:{
属性:“聚焦如果”
}
}
}
});
确保不要为
焦点f
提供默认值。这将阻止在默认情况下在输入元素上添加指令

然后在字段上设置所需的表达式:

$scope.formFields=[
{
关键字:“电子邮件”,
键入:“输入”,
模板选项:{
键入:“电子邮件”,
要求:正确,
占位符:“电子邮件”,
focusIf:'true'//或任何其他角度表达式
}
}
];

您可以随意使用它。

您可能想了解一下。它有点复杂,但是通过定义一个自定义类型,将其定义为默认选项,您可以完成您所寻找的内容。看看这个示例。您好,Kent!感谢您将我推向正确的方向!只想告诉您Formly确实很棒,而且非常灵活e、 我喜欢Angular,但表单对我来说一直是一个巨大的痛苦,现在一切都解决了,多亏了你。我用我的ngFocusIf集成创建了一个JSBin,可以根据你的需要自由编辑它,并将其添加到示例列表中。干杯!