2016-05-11 3 views
0

私は少し角度のあるアプリケーションでいくつかの助けを探しています。
私は、プラスアイコンをクリックすると、他のすべてのアイテムがカバーされ、選択されたアイテムはカバーされないアイテム/イメージのグループを持っています。トリガng-repeatの外側にある角度スコープのID

これをng-repeatの外側からトリガーしたいと考えています。

のテキストリンクをクリックすると、カバーの効果をトリガーする方法と、現在使用されているプラ​​スアイコンを探しています。
両方のオプションを使用しましたか?

これまでのところ、私はアプリケーションのコードで使用することができるidを発火させるテキストトリガーを持っています。

ここでは、作業FIDDLEです。

ここではAvijit Guptaがこれに対して行ったoriginal questionがあります。
Avijitの投稿は例外です。

これに関するお手伝いがあります。

のnavテキストトリガー・コード...

<div class="col-xs-12 navText"> 
    <ul> 
     <li><a href data-id='1' data-ng-click="idLocation($event)">ONE</a></li> 
     <li><a href data-id='2' data-ng-click="idLocation($event)">TWO</a></li> 
     <li><a href data-id='3' data-ng-click="idLocation($event)">THREE</a></li> 
     <li><a href data-id='4' data-ng-click="idLocation($event)">FOUR</a></li> 
     <li><a href data-id='5' data-ng-click="idLocation($event)">FIVE</a></li> 
    </ul> 
    </div>  

アプリのコード...どのように動作

// nav text trigger id's 
    $scope.idLocation = function (e) { 
     ids = $(e.target).data('id'); 
     console.log(ids); 
    }; 

    $scope.setToInitialState = function() { 
    $scope.blocks.forEach(function(block) { 
     $scope.isSelected[block.id] = false; 
     $scope.isCovered[block.id] = false; 
    }); 
    }; 

    $scope.selectBlock = function(id) { 
    $scope.isSelected[id] = !$scope.isSelected[id]; 
    $scope.isCovered[id] = false; 
    if ($scope.isSelected[id]) { 
     $scope.blocks.forEach(function(block) { 
     if (block.id !== id) { 
      $scope.isCovered[block.id] = true; 
      $scope.isSelected[block.id] = false; 
     } 
     }); 
    } 
    else { 
     $scope.setToInitialState(); 
    } 
    }; 

}); 

... enter image description here

答えて

0

私がお勧めあなたはtag liと同じ関数selectBlocで同じng-repeatを使いますタグaのk。

<div class="row"> 
    <div class="col-xs-12 navText"> 
     <ul> 
      <li ng-repeat="block in blocks"><a href data-ng-click="selectBlock(block.id)">{{block.name}}</a></li>  
     </ul> 
    </div> 
</div> 

また、ブロック内の各要素のフィールド名を追加します。

$scope.blocks = [ 
    { 
     id: '1', 
     name: 'ONE', 
     block: "1", 
    }, 
    { 
     id: '2', 
     name: 'TWO', 
     block: "2", 
    }, 
    { 
     id: '3', 
     name: 'THREE', 
     block: "3", 
    }, 
    { 
     id: '4', 
     name: 'FOUR', 
     block: "4", 
    }, 
    { 
     id: '5', 
     name: 'FIVE', 
     block: "5" 
    } 
]; 
+0

Hello Dj_System。これは本当に私が探していたものに対する質問に答えなかった。しかし、私はあなたの提案に感謝します。あなたは私のために働くオプションで私自身の質問に答えているのを見ることができます。ありがとうAngularJR – AngularJR

0

回答には自分の質問に答えてください。

ng-repeatの外側からカバー・エフェクトをトリガーする方法の1つです。私はここにいた何
selectBlock()にデータ-ngのはクリックだけハードコードIDselectBlock()を使用することでした。このよう

...ここ

<li><a href data-ng-click="selectBlock('1')">ONE</a></li> 
<li><a href data-ng-click="selectBlock('2')">TWO</a></li> 
<li><a href data-ng-click="selectBlock('3')">THREE</a></li> 
<li><a href data-ng-click="selectBlock('4')">FOUR</a></li> 
<li><a href data-ng-click="selectBlock('5')">FIVE</a></li> 

はTEXTと+/-アイコンをクリックして作業してのデモです。

作業FIDDLE

enter image description here

関連する問題