2016-06-14 7 views
0

Ich versuche, einige HTML-Elemente dynamisch in einem Formular hinzuzufügen. Wenn ich auf eine Schaltfläche klicke, werden diese Elemente in diesem HTML-Formular korrekt hinzugefügt. Unten ist meine HTML Formular Deklaration.Wie man ein Formular als "Schmutzig" unter Verwendung des Formularnamens in angularjs markiert?

<div ng-cloak ng-form="" name="jobEntryForm" id="jobEntryForm" job-entry-layout confirm-on-exit ng-hide="vm.showEstimateContacts"> 
<!-- other elements here--> 
</div> 

Und in diesem div, Ich füge dynamische HTML-Elemente wie unten:

<div class="col-md-2 pull-left "> 
    <div ng-include="'/App/Job/Entry/tasksMenuButton.html'"></div> 
</div> 

Obwohl die HTML-Elemente innerhalb tasksMenuButton.html dynamisch hinzugefügt werden, sie gehören nicht zu einer Richtlinie. Diese tasksMenuButton.html haben auch einige dynamische Elemente (d. H. Sendung Aufgabe), die unter Verwendung ng-include Direktive hinzugefügt werden. Jetzt zu Aufgabe Aufgabe Funktionalität zu behandeln, habe ich separate Controller erstellt (d. H. SendungTask.Controller.ts). Nun, was ich will, ist die Form jobEntryForm als schmutzig von innerhalb dieses Controllers. Aber ich kann nicht auf das Formular zugreifen. Der Controller hat keine Eigenschaft, um das Formular zu halten. Im Folgenden ist der Umfang Schnittstelle:

export interface IConsigmentTaskScope extends ng.IScope { 
     task: IConsignmentTask; 
     contactEntryModalInstance: ModalServiceInstance; 
     serviceListModalInstance: ModalServiceInstance; 
     messageModalInstance: ModalServiceInstance; 
    } 

Wie kann ich die Form jobEntryForm in diesem (consignmentTask.controller.ts) Controller erhalten und es schmutziges machen?

** Ich habe versucht, Formularelemente mit dort ID/Klasse zu bekommen, aber das Element (en) enthält ein Formularattribut als null.

+0

Warum versuchen Sie das Formular manuell als schmutzig zu markieren? Normalerweise haben Sie die Formularelemente aktualisieren das Formular schmutzig und die Gültigkeit. –

+0

@BryanEuton In meiner consignmentTask.html Seite habe ich eine Dropdown-Liste, um einige Service-Informationen zu füllen. Wann immer ich einen Dienst auswähle/ändere, möchte ich das Formular als schmutzig markieren, damit der Benutzer erkennt, dass das Formular gespeichert werden muss. –

+0

Versuchen Sie, der ngform einen Namen zu geben. Ich bin nicht an einem Computer, um dies zu überprüfen, aber ich denke, deshalb funktioniert es nicht automatisch für Sie, wenn Sie die Auswahl ändern. Wenn dies nicht funktioniert, posten Sie bitte den HTML-Code für das Snippet mit der ausgewählten Auswahl. –

Antwort

0

Sie können jobEntryForm auf den Rahmen definieren:

export interface IConsigmentTaskScope extends ng.IScope { 
    task: IConsignmentTask; 
    contactEntryModalInstance: ModalServiceInstance; 
    serviceListModalInstance: ModalServiceInstance; 
    messageModalInstance: ModalServiceInstance; 
    jobEntryForm: ng.IFormController 
} 

Und dann rufen Sie $scope.jobEntryForm.$setDirty()

Verwandte Themen