2016-09-22 5 views
0

Ich muss überprüfen, ob die Elemente auf der aktuellen HTML-Seite (die mit ui-view gerendert wird) schmutzig oder unverschmutzt sind, bevor ich zur nächsten Registerkarte navigiere.Wie man auf einen ngform Namen vom Prüfer zugreift?

Geordnete Seite:

<div class="inner-menu"> 
    <nav> 
     <div> 
     <ul class="nav nav-tabs edit-menu" role="tablist"> 
      <!-- location 1 --> 
      <li ng-repeat="innerTab in innerTabListArr" ng-click="switchTab($index, $event)"> 
      <a role="tab" data-toggle="tab" href="">{{innerTab.text}}</a> 
      </li> 
     </ul> 
     </div> 
    </nav> 
    <div ui-view="innerTabHolder" name="currForm"></div>  
    </div> 

und die HTML-Vorlage, die zu innerTabHolder Ansicht gerendert wird, ist:

<div class="edit-general" id="General"> 
    <div class="modal-dialog modal-lg"> 
    <form class="form-horizontal" name="generalForm"> 
     <label for="inputL3" class="control-label">Text</label> 
     <div class="col-sm-4"> 
      <input type="text" class="form-control" ng-model="gn.myMdl"> 
     </div> 
     <div class="box-footer"> 
      <div class="row"> 
      <div class="col-sm-10"> 
        <!-- location 2 --> 
        <button class="btn" type="button" ng-click="switchTab(generalForm, $event)"> BCK </button> 
        <button class="btn" type="button" ng-click="saveGen()">Save Above</button> 
        <button class="btn" type="button" ng-click="switchTab(generalForm, $event)"> FWD </button> 
       </div> 
      </div> 
     </div> 
    </form>        
</div> 
</div> 

Es gibt mehrere Registerkarten, die in die Ansicht gerendert wird erhalten. Und dies ist der Controller ich habe:

myApp.controller('compTabCtrl',[ '$rootScope', '$scope', '$state', 'mainWebService', 
function($rootScope, $scope, $state, mainWebService){ 

    $scope.innerTabListArr = [{"text" : "Tab 1"},{"text" : "Tab 2"}]; 

    $scope.switchInnerTab = function(tabId, event){ 

    }; 
}]); 

Ok, so ist diese Grundzüge und ich glaube, ich habe alle Teile abgedeckt. Nun, mein Problem ist, ich nicht in der Lage bin, das Formular zu übergeben: „generalForm“ in switchTab Funktion am Standort 1, wo, wie ich das gleiche an der Stelle tun kann 2.

Ich bin mit der Form der $dirty und $pristine überprüfen, ob die Der Benutzer hat Änderungen am Formular vorgenommen. Wenn Sie also auf den Tab für die Navigation klicken, wird das Formular undefiniert.

Wie kann ich auf die $dirty Eigenschaft der Unteransicht im Controller zugreifen.

Plunker für Demo:

https://plnkr.co/edit/06F5JfXltinyxrZbbc14?p=preview

+0

Ich bin nicht ganz sicher, ob ich richtig verstanden, was Sie wollen: Sie wollen auf die Variablen innerhalb der Unteransicht vom Hauptcontroller zugreifen? Normalerweise hat jede Ansicht in meinen Anwendungen ihren eigenen Controller und ich nutze Dienste, um zwischen ihnen zu kommunizieren. –

+0

Ich habe nur 1 Controller für alle Unteransicht. Diese Demo ist ein kleiner Teil eines großen Projekts. Also, ja, du hast es richtig ausgedrückt, ich möchte auf die Variablen in der Unteransicht meines Controllers zugreifen. Da es nur einen Controller gibt, sollte das für alle vier Ansichten möglich sein. –

+0

Ok, warum nicht einfacher: '' –

Antwort

0

Wenn Sie versuchen, die Variable immer $ Bereich zu verwenden für den Zugriff auf

Zugang curForm mit

$scope.curForm.$dirty 
+0

TypeError: Die Eigenschaft '$ dirty' von undefined unter Scope konnte nicht gelesen werden. $ Scope.switchInnerTab. $ scope.currForm gibt undefined. –

+0

überprüfen Sie bitte den Plunker –

Verwandte Themen