事件处理程序在Angular Controller中停止工作

时间:2014-11-20 07:14:02

标签: javascript angularjs

我的一个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)')

1 个答案:

答案 0 :(得分:0)

元素id必须是唯一的 - 我怀疑角度是第二次渲染模板,因此创建了两个具有相同id的元素。也许使用课程可以提供帮助。