AngularJs 动态表单生成与验证

标签 angularjs

我正在尝试动态生成表单并同时使用验证。我现在遇到的问题是输入属性 name='{{key}}' 未通过验证进行插值。

<div ng-repeat="options in formObject">
     <input type='radio' ng-model='ranodm' name='{{key}}'>
</div>

我知道如果我想要动态表单,我应该使用 ng-form,但是我很难理解它。我正在添加我想要实现的简单 plnkr 示例。如果有人能展示如何使用 ng-form 或其他方法解决这个问题,那就太好了。

http://plnkr.co/edit/faG89bmu18nNNODVRV3x

最佳答案

我通过阅读这篇文章找到了答案:Dynamic validation and name in a form with AngularJS

我最终使用dynamicName指令来解决这个问题,这样我就可以使用UUID作为字段的名称。这是一个 plnkr 和我使用的指令。我不能将此指令归功于我,我在另一篇文章中找到了它。

http://plnkr.co/edit/RFrRXp2kWkP1Mefwl3Kn?p=info

myApp.directive('dynamicName', function($compile, $parse) {
    return {
        restrict: 'A',
        terminal: true,
        priority: 100000,
        link: function(scope, elem) {
            var name = $parse(elem.attr('dynamic-name'))(scope);
            elem.removeAttr('dynamic-name');
            elem.attr('name', name);
            $compile(elem)(scope);
        }
    };
});

关于AngularJs 动态表单生成与验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754721/

相关文章:

javascript - Facebook Messenger 复选框插件未呈现

javascript - Angular : How to allow selecting values outside of ngOptions

javascript - 修改 Angular promise

javascript - put方法中的Angularjs文件上传不起作用

javascript - 调整div大小时无法让谷歌地图高度自动调整大小

javascript - Angular 错误 : $injector:modulerr Module Error

javascript - 如何在 angularjs ui-router 中的状态之间共享 $scope 数据?

javascript - ng-bind 更改后不更新值

angularjs - 使用 TypeScript 的 Angular 1.x 中的类级可注入(inject)依赖项?

javascript - 如何从http服务获取错误