0

我有这样的服务

function() {
    this.show = false;

    this.toggle = function() {
        this.show = !this.show;
    }
}

并且菜单有一个查看 MenuService.show 的 ng-show

这工作得很好,但是我正在尝试这样做,以便当用户在主页中单击时,它将显示设置为 false,从而隐藏菜单。我有这个代码

angular.element(document.getElementById("pages")).bind("click", function() {
    $scope.menuService.show = false;
});

但 ng-show 似乎并没有注意到 show 现在是假的并继续显示。我究竟做错了什么?

4

1 回答 1

1

如果您要绑定到bindAngular 之外的事件(使用 ),那么您需要$apply运行 Angular 摘要并更新范围:

angular.element(document.getElementById("pages")).bind("click", function() {
    $scope.menuService.show = false;
    $scope.$apply();
});
于 2014-02-04T10:18:46.860 回答