在角度上获取并传递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的角?
答
我发现这个问题 - 它是因为函数是在错误的控制器
你的范围函数是'ShowId'(大写字母“S”),但你'NG-click'指令试图执行'showId' (小写“s”)。 – Phil
也可以尝试做一个$ scope。$ apply()函数的末尾 –
我也建议直接将参数传递给'ShowId'。例如'ng-click =“ShowId(true)”'并使用'$ scope.ShowId = function(isTranscript){$ scope.url = isTranscript? '... binder1.pdf':'... KeilCarpenterCV.pdf'; }' – Phil