Angular:需要(或不需要)嵌套子表单

时间:2016-04-25 12:40:57

标签: angularjs nested-forms required

一方面,我有一个非常简单的emailForm指令。

脚本

directives.directive('emailForm', function(){
    return {
        restrict: 'AE',

        templateUrl: "views/forms/email.html",
        controller: function(){console.log('its the addressForm here dude');},
        scope: {
            email: '=email'
        },
        require: ['^form', 'ngModel']
    };
});

我现在想在contactForm中使用这个指令:

<form name="contactForm">
   <input type="text" ng-model="contact.name"/>
   <email-form email="contact.email"></email-form> // how to make this required or not...?
</form>

如何在contactForm中设置emailForm(不在mail指令中,因为我希望能够在不需要的地方使用它)?

我的第一个想法是在emailDirective中传递一个必需的参数,但是这对于一个简单的输入(如电子邮件)来说似乎是一个好主意,但它似乎并不像嵌套子表单本身就是一个真正的表单。

1 个答案:

答案 0 :(得分:0)

必需属性仅对输入标记有效。如果您希望能够切换子表单中的所有输入字段,可以尝试类似:

<email-form email="contact.email" form-required="<your value>"></email-form>

//javascript emailFormDirective : 
scope:{
    emailRequired:"@formRequired",
    email:"=email"
} 

//email.html template
<input ... ng-required="emailRequired" ... />

注意:我为每一步都使用了不同的名称,这样你就不会迷失它们。