2016-03-15 66 views
0

我想從控制器中的DOM獲取元素的id,並根據id將顯示相應的表單。在角度上獲取並傳遞DOM元素的id

我可以很容易地爲每個ID製作兩個單獨的視圖,但這只是骯髒的方式。

<a id="transcript" href="#/pdfView" ng-click="showId($event)" data="transcript">--><img src="assets/images/graduation22.png" id="view-transcript"></a> 

我已經使用$scope獲取和返回使用NG-點擊指令控制器內部的元素ID嘗試。

$scope.ShowId = function(event) 
{ 
    if(event.target.id == 'transcript'){ 
     $scope.url = 'assets/documents/binder1.pdf'; 
    } 
    else{ 
     $scope.url = 'assets/documents/KeilCarpenterCV.pdf'; 
    } 
}; 

然後 'URL' 的值發送到NG-SRC ATTR的指令模板:

<pdfviewer ng-src="{{url}}" on-page-load='pageLoaded(page,total)' id="viewer"></pdfviewer> 

但什麼都不做。

正如我上面提到的,我可以爲每個文檔分別創建兩個視圖,但這只是聽起來像rediculas。

那麼什麼是最好的方式來獲得和傳遞id的角?

+0

你的範圍函數是'ShowId'(大寫字母「S」),但你'NG-click'指令試圖執行'showId' (小寫「s」)。 – Phil

+0

也可以嘗試做一個$ scope。$ apply()函數的末尾 –

+0

我也建議直接將參數傳遞給'ShowId'。例如'ng-click =「ShowId(true)」'並使用'$ scope.ShowId = function(isTranscript){$ scope.url = isTranscript? '... binder1.pdf':'... KeilCarpenterCV.pdf'; }' – Phil

回答

0

我發現這個問題 - 它是因爲函數是在錯誤的控制器