AngularJs动态表单生成与验证

时间:2014-02-13 12:48:19

标签: 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

2 个答案:

答案 0 :(得分:2)

我通过阅读这篇SO帖子找到了答案: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);
        }
    };
});

答案 1 :(得分:0)