2

入力に基づいて div を非表示にしようとしています。ID付きのリストなので、現在私のdivは次のようになっています:

<div class="animate-show" ng-hide="'hide'-{{item.Id}}">

これは次を出力'hide'-1ng-hideます。「」を削除しようとしましたが、機能しません。

計画では、各アイテムにボタンが付けられ、ボタンをクリックすると適用さ$scope.hide-1 = true;れ、そのアイテムのフェードアウトがアニメーション化されます。

ボタンのクリックに基づいて、リスト内の項目 (div 内の div) を隠した人はいますか? どうすればいいですか?

4

2 に答える 2

3

次のように動的スコープ プロパティ名を作成できます。

<div class="animate-show" ng-hide="this['hide-' + item.Id]">

ngHide thisスコープ オブジェクトへのポイント ( )内では$scope、変数を使用してプロパティ名を作成するためにブラケット表記を使用するだけです。

$scope.hide-1というのは無効な表記なので、 にした方がよいことに注意してください$scope.hide1

于 2015-03-04T13:57:13.100 に答える
1

私は関数を使用します:

ng-hide="shouldHide(item.Id)"

そしてコントローラーで:

var itemIdsToHide = {};

$scope.shouldHide = function(itemId) {
    return itemIdsToHide[itemId];
};

$scope.hideItem = function(itemId) {
    itemIdsToHide[itemId] = true;
};

$scope.showItem = function(itemId) {
    delete itemIdsToHide[itemId];
};
于 2015-03-04T14:00:18.763 に答える