单击时通过$ scope删除元素

时间:2014-10-30 17:53:19

标签: javascript html angularjs

我对角度很新,我正在尝试一些事情。 我创建了一个显示(切换)菜单的控制器。在菜单中有一些li和一些指令。其中一人有ng-click="erase()"。单击它时,我希望删除(删除)元素本身。有可能这样做吗?在jQuery中,我认为:element.remove();

这是我的代码:

<div ng-controller="DeathrayMenuController">
  <button ng-click="toggleMenu()">Toggle Menu</button>
  <ul ng-show="menuState">
    <li ng-click="stun()">Stun</li>
    <li ng-click="disintegrate()">Disintegrate</li>
    <li ng-click="erase()">Erase from history</li>
  </ul>
</div>

ng-click="erase()"应从li删除整个ul

这是我的代码:

$scope.erase = function(){
  console.log($scope);
};

希望有人可以帮助我。非常感谢!

1 个答案:

答案 0 :(得分:3)

要删除元素,可以使用ng-if指令。这将在表达式为false时删除元素。

以下是一个例子:

$scope.erase = function() {
    $scope.erased = true;
}

<li ng-click="erase()" ng-if="!erased">Erase from history</li>

在Angular中,您的JavaScript不应该操纵DOM。相反,您的JavaScript操纵$scope,指令操纵DOM。