【问题标题】:AngularJS: How do I hide clicked element in angular?AngularJS:如何在 Angular 中隐藏单击的元素?
【发布时间】:2014-02-08 03:02:32
【问题描述】:

我对 Angular 完全陌生,我发现做简单的事情对我来说并不那么明显?我有一个使用 ng-repeat 显示的项目列表。我只想在单击该范围内的元素后隐藏该元素。我想通过良好的做法以“角度”的方式来做......只是不确定那是什么。

这是html

<div ng-app="myApp">
    <div ng-controller="FruitsCtrl">
        <ul>
            <li ng-repeat="fruit in fruits">
                <p>{{fruit.name}}</p>
                <button ng-click="hideMe()">hide li</button>
            </li>
        </ul>
    </div>
</div>

这是我的js

var myApp = angular.module('myApp', []);

myApp.factory('Fruits', function () {
    var Fruits = [{
        name: "banana"
    }, {
        name: "watermelon"
    }, {
        name: "strawberry"
    }];

    return Fruits;
});


function FruitsCtrl($scope, Fruits) {
    $scope.fruits = Fruits;

    $scope.hideMe = function () {
        alert('hide this li');
    };
}

我在 jsfiddle 上有这个:http://jsfiddle.net/hS5q8/2/

帮助或指导会很棒!谢谢!!

【问题讨论】:

    标签: javascript angularjs angularjs-scope angularjs-ng-repeat ng-hide


    【解决方案1】:

    您可以使用ngHide 指令。在示例中添加了一个属性 hide,如果此属性为 truengHide 将隐藏 li

    HTML

    <li ng-repeat="fruit in fruits" ng-hide="fruit.hide">
        <p>{{fruit.name}}</p>
        <button ng-click="hideMe(fruit)">hide li</button>
    </li>
    

    Angularjs 方法

    $scope.hideMe = function (fruit) {
        fruit.hide=true;
        alert('hide this li');
    };
    

    DEMO

    【讨论】:

    • 我想知道 ng-hide 是如何工作的。谢谢!!效果很好!
    • 我觉得你也可以跳过这个功能:ng-click="fruit.hide=true"
    • @FooL,但是 OP 可能需要在那个方法中做一些操作
    • @Satpal,真的,这是一个很好的镀金答案。我试图为原始问题“单击时如何隐藏元素?”提供最简单的答案。 :) 两者都有效
    • @FooL,我完全同意你的解决方案,这会奏效。毫无疑问
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 2014-04-11
    • 2022-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    相关资源
    最近更新 更多