在角度上获取并传递DOM元素的id

问题描述:

我想从控制器中的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

我发现这个问题 - 它是因为函数是在错误的控制器