我的一个Angular控制器中有以下行。每次加载初始页面时都会触发事件处理程序,但是当导航到其他项目时,即使它们使用相同的控制器和模板,它也会停止工作。
document.getElementById('item-details-view').addEventListener('touchstart', toggleshowoption, false);
更新:
尝试使用此指令:
app.directive('slideShowMenu', function () {
return {
link: function ($scope, $element, $attrs) {
var visible = false;
function toggleshowoption() {
if (!visible) {
$(".slideshow-controls").css({"visibility": "visible", "opacity": "1"});
visible = true;
}
else {
$(".slideshow-controls").css({"visibility": "hidden", "opacity": "0"});
visible = false;
}
}
$element.addEventListener('touchstart', toggleshowoption, false);
}
}
});
这给了我以下错误:
undefined is not a function (evaluating '$element.addEventListener('touchstart', toggleshowoption, false)')
答案 0 :(得分:0)
元素id必须是唯一的 - 我怀疑角度是第二次渲染模板,因此创建了两个具有相同id的元素。也许使用课程可以提供帮助。