2016-08-31 2 views
-4

Angularでは$ indexをコントローラにバインドしたいと思っていました。私のコントローラに$ indexの値をどのように送ることができますか?ここに私のHTMLコードです。ここで

<body> 
<div class="container"> 
    <div class="row row-content" ng-controller="demoController as demoCtrl"> 
    <ul> 
    <li ng-repeat="val in demoCtrl.list" >Hello {{$index}}</li> 
    </ul>  
    </div> 
</div> 

は私のコントローラのコード

var app = angular.module('confusionApp',[]) 
app.controller('demoController', function(){ 
    var list = [1,2,3,4,5]; 
    this.list = list; 

    var array = ['abc','def','ghi','jkl','mno'] 
    this.array = array 
    console.log(this.array[index]); 
}); 

である私は、HTMLでNG-モーダルを使用して、私のコントローラにいくつかの変数にその値をバインドする必要があります。

インデックスの選択に基づいて、配列をチェックインする必要があり、それぞれの配列を出力する必要があります。 あなたのお手伝いができます

+1

あなたは$インデックスを使用する必要があります。クリックするか? – Aravind

+0

「オンクリック」ではありません。私はその質問を修正した。一度チェックしてください。 –

+1

'$ index'は' ng-repeat'の現在の反復位置です。 * "ng-modalを使用する必要があります" * - "ng-model"を意味しましたか? * "索引の選択に基づいて" * " - "選択 "*とは何を意味しますか?あなたは、最終結果を望むものの簡単な例を挙げることができますか? – Phil

答えて

0

私は何をしたいですか?あなたがイベントを使用したい場合。次のようなコントローラの関数に$ indexを渡すことができます:

<li ng-repeat="val in demoCtrl.list" ng-click="getIndex($index)">Hello {{$index}} 

$scope.getIndex = function($index) { 
console.log($index) 
} 

助けて欲しいです。

+0

オンクリックを使用したくありません。私は質問を更新しました。一度確認してください –

1

あなたが達成しようとしていることに応じて、カスタムイテレータを作成する方が良いかもしれません。

function makeIterator(array){ 
    var nextIndex = 0; 

    return { 
     next: function(){ 
      return nextIndex < array.length ? 
       {value: array[nextIndex++], done: false} : 
       {done: true}; 
     } 
    } 
} 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators

あなたがngRepeatを使用するときに角度は、リスト内のすべてのものを反復する予定です。ユーザーがクリックするリスト項目を追跡しようとしている場合は、$ indexを使用してそこに追加するだけです。

<li ng-repeat="val in demoCtrl.list" > 
    <span ng-click="demoCtrl.userClicked($index)"> Hello {{$index}}</span> 
</li> 

各アイテムのデータを印刷しようとしているだけの場合、ng-repeatはすべてのものを既に繰り返しています。

<li ng-repeat="val in demoCtrl.list" > 
    <span ng-click="demoCtrl.userClicked($index)"> Hello {{val}}</span> 
</li> 

すべては、何をしようとしているかによって異なります。

+0

"オンクリック"を使用したくありません。私は質問を更新しました。一度チェックしてください –

+0

@YeshuAnnadata印刷しようとしていますか? – dwbartz

2

コントローラの現在の反復位置を取得するには、関数を定義します。 あなたのhtmlコードはこうです。

<body> 
<div class="container"> 
    <div class="row row-content" ng-controller="demoController as demoCtrl"> 
    <ul> 
    <li ng-repeat="val in demoCtrl.list" ng-click="dispArray($index)">Hello {{$index}}</li> 
    </ul>  
    </div> 
</div> 

そして、あなたのコントローラコード

var app = angular.module('confusionApp',[]) 
app.controller('demoController', function($scope){ 
    $scope.dispArray = function(index){ 
      // console.log(index); 
      // your code 
    } 
}); 
関連する問題