我需要檢查在導航到下一個選項卡之前,當前html頁面上的元素(使用ui-view呈現)是髒的還是純淨的。如何從控制器訪問ngform名稱?
父頁面:
<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>
和HTML模板將呈現給innerTabHolder的觀點是:
<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>
有跡象表明將得到渲染到視圖多個選項卡。這是控制器我有:
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){
};
}]);
好了,這是基本的輪廓,我相信,我已經把所有的部件。現在,我的問題是我不能夠通過以下形式:「generalForm」到switchTab功能,在這裏,我可以2.
我使用窗體的$dirty
和$pristine
檢查,如果在位置做同樣的位置1用戶對錶單進行了任何更改。因此,在點擊導航標籤時,表單變得未定義。
如何訪問控制器中子視圖的$dirty
屬性。
Plunker用於演示:
https://plnkr.co/edit/06F5JfXltinyxrZbbc14?p=preview
我不太清楚,如果訪問curForm我正確理解你想要的:你想從主控制器訪問子視圖內的變量?通常在我的應用程序中,每個視圖都有自己的控制器,我使用服務在它們之間進行通信 –
我只有1個控制器的所有子視圖。這個演示是一個巨大項目的一小部分。所以,是的,你指出了正確的,我想訪問我的控制器中的子視圖中的變量。因爲,對於所有的四種觀點,只有一個控制者,我認爲這應該是可能的。 –
好吧,爲什麼不更簡單:'' –