2017-06-19 2 views
1

Ich habe eine HTML-Seite, in der eine Direktive (Kind HTML) wie folgt ist. Ich möchte Eingabe-Validierung von input1 und input2 in Direktive (Kind HTML) für die Schaltfläche in Eltern-HTML, aber ich weiß nicht, wie ich auf die Eingabe1 und Eingabe2 in Kind (Direktive) zugreifen kann. Ich würde gerne wissen, was der richtige Weg ist, um auf Input1 und Input2 zuzugreifen? Danke im Voraus!!wie auf element in der richtlinie zugreifen?

Eltern html:

<div> 

<child></child> 
<button name="myButton" ng-disabled="????.myForm.input1.$invalid"><button> 

</div> 

Richtlinie: Kind

<form name="myForm"> 

<input name="input1" required/> 
<input name="input2" required/> 

</form> 

Antwort

1

Sie können $emit Ereignis Ihrer Eltern-Controller und benötigten Daten übergeben.

Richtlinie:

$scope.$emit('yourCustomEvent', 'Data to send'); 

und das Ereignis in Sie übergeordnete Steuerung fangen.

Eltern Controller:

$scope.$on('yourCustomEvent', function (event, data) { 
    console.log(data); // will print "Data to send" 
}); 

Und in Ihrem Fall, dass ich Rat, den Sie auf den Button in der Richtlinie aufzunehmen, wird es viel einfacher sein, mit ihm zu arbeiten.

2

Versuchen Sie folgendes:

Eltern Controller:

vm.myForm = {}; 

Eltern Html:

<child my-form="vm.myForm"></child> 
<button name="myButton" ng-disabled="vm.myForm.input1.$invalid"><button> 

Kinder Richtlinie:

scope: { 
myForm: "=" 
} 

Kind HTML:

<form name="myForm"> 

    <input name="input1" required/> 
    <input name="input2" required/> 

</form> 
+0

Ich würde gerne wissen, was ist vm.myForm = {}; bedeuten? Was ist VM? – diane

+0

controllerAs: 'vm' –

Verwandte Themen