angular js中的此关键字显示Type Error

时间:2016-07-03 15:03:07

标签: angularjs jqlite

我想要以角度点击但没有jQuery的目标和元素。

$scope.hide = function() {
    this.querySelector('ul').style.display = 'none'
};

但是我收到了这个错误:

  

TypeError:this.querySelector不是函数。

我是Angular的新手。我做错了吗?

3 个答案:

答案 0 :(得分:1)

该函数内的this不会引用您认为引用的对象(尝试调试和/或记录它)。我建议您阅读how the this keyword works in Javascript

相反,您只想做document.querySelector

无论如何,显示/隐藏事物的“Angular方式”正在使用像ngShow这样的指令。 E.g:

$scope.isVisible = true;
$scope.hide = function() { $scope.isVisible = false; };
<div ng-show="isVisible">...</div>

答案 1 :(得分:1)

this关键字是对象的引用。在这里你没有一个对象所以没有参考它的意义。这就是为什么它说查询选择器不是函数导致this未被定义的原因。使用this更改document

答案 2 :(得分:0)

$scope.hide = function() {
    document.querySelector('ul').style.display = 'none'
};