2016-04-25 8 views
0

Auf der einen Seite, ich habe eine sehr einfache emailForm Richtlinie.Angular: make verschachtelte Unterformular erforderlich (oder nicht)

Skript

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'] 
    }; 
}); 

ich jetzt diese Anweisung in einem Kontaktformular verwenden möchten:

<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> 

Wie kann ich die emailForm in KONTAKTFORMULAR (nicht in der E-Mail-Richtlinie erforderlich machen, wie ich will in der Lage sein, es irgendwo zu benutzen, wo es nicht benötigt wird)?

Mein erster Gedanke war, einen erforderlichen Parameter in der emailDirective zu übergeben, aber während dies eine gute Idee für eine einfache Eingabe (wie E-Mail) scheint, scheint es nicht zu sein, sobald das geschachtelte Teilformular ein echtes Formular ist .

Antwort

0

Das Attribut ist nur für Eingänge Tags gültig. Wenn Sie in der Lage sein, alle Eingabefelder in der Unter wechseln Formular, das Sie so etwas wie versuchen:

<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" ... /> 

Hinweis: i verwendet differents Namen für jeden Schritt, damit Sie nicht zwischen ihnen verloren gehen.