我正在將一些我的html/javascript頁面移動到AngularJS。以前,我的腳本(HTML5的音頻播放器),在網頁上呈現一些HTML元素,然後進行了一些腳本,以使用這些元素,正是如此:Angular中的getElementById等價嗎?
audioplayer.html:
...
<div id="timeline">
<div id="showElapsed">
<div class="bg">
</div>
</div>
<div id="playhead"></div>
</div>
...
<script>
var playhead = document.getElementById('playhead'); // playhead
var timeline = document.getElementById('timeline'); // timeline
// timeline width adjusted for playhead
var timelineWidth = timeline.offsetWidth - playhead.offsetWidth;
...
現在我喜歡將其移動到角度控制器/視圖佈局中,所以;
的index.html
...
<div ng-controller="AudioPlayerController">
<div ng-include="'views/audioPlayerView.html'"></div>
</div>
...
main.js
...
function AudioPlayerController($scope) {
var playhead = document.getElementById('playhead'); // playhead
var timeline = document.getElementById('timeline'); // timeline
// timeline width adjusted for playhead
var timelineWidth = timeline.offsetWidth - playhead.offsetWidth;
...
audioPlayerView.html:
...
<div id="timeline">
<div id="showElapsed">
<div class="bg">
</div>
</div>
<div id="playhead"></div>
</div>
...
現在我有一個親blem - document.getElementById('timeline');
不會返回任何內容,因爲它已移至控制器。此外,控制器在視圖之前調用,那麼控制器如何從視圖引用元素?
我意識到這是基本的角度佈局的東西,但我無法弄清楚。請有人幫助我以更有角度的方式思考!?謝謝。
如果你在Angular中使用DOM,你應該使用[directive](https://docs.angularjs.org/guide/directive) –
這個不是你如何使用角度,angular是爲單頁面應用程序構建的,它使用[routing](http://www.w3schools.com/angular/angular_routing.asp)在需要時加載頁面。 – Cyclotron3x3
音頻播放器是所有路由通用的,所以試圖將其添加到索引頁面,但UI路由器解決方案也適用於我... – Leon