2016-03-29 10 views
0

私は 'catID'と 'catName'で構成されるJson文字列を持っています。これまでは、各カテゴリのラベルが付いたボタンのリストを作成しました。ユーザーがカテゴリに関連付けられたボタンをクリックすると、catIDを返そうとしています。現在は$ indexが返されていますが、これは問題ありませんが、catIDを使うとコードの次の段階に情報を渡すことができます。正しいボタンをアクティブにするには$インデックスが必要です。ng-repeatボタンリストから変数を返す必要があります

これは私が現時点で持っているものです。

<h4>Select Category</h4> 
    <ul class="nav nav-pills"> 
     <li ng-repeat="categories in model" ng-class="{'active':rowIndex == $index }" ng-click="selectRow($index)"> 
     <a href="">{{categories.catID + " " + categories.catName}}</a> 
     </li> 
    </ul> 

マイ角度コントローラ:

app.controller("catBtnCtrl", function ($scope) { 
     $scope.selectRow = function (index) { 
      if (index === $scope.rowIndex) 
       $scope.rowIndex = -1; 
      else 
       $scope.rowIndex = index; 
     }; 
    }); 

私は別の方法をいくつか試してみましたが、彼らは空白を描いています。どんな助けもありがとう!

答えて

1

この情報について: コントローラ機能でインデックスを取得したら、適切なアイテムの詳細を検索できます。 それとも、UPDATE

app.controller("catBtnCtrl", function ($scope) { 
     $scope.categoryID = null; 
     $scope.categoryName = null; 
     $scope.selectRow = function (index, id, name) { 
      if (index === $scope.rowIndex) 
       $scope.rowIndex = -1; 
      else 
       $scope.rowIndex = index; 
      $scope.categoryID = id; 
      $scope.categoryName = name; 
      // next do some functions that retrieve the data that corresponds to these parameters 
     }; 
    }); 
を関数に2つの以上の値を渡すとhtmlから

それらを送信することができますカテゴリを選択してください

<ul class="nav nav-pills"> <li ng-repeat="categories in model" ng-class="{'active':rowIndex == $index }" ng-click="selectRow($index, categories.catID, categories.catName)"> <a href="">{{categories.catID + " " + categories.catName}}</a> </li> </ul> 
+0

仮説の例を挙げることはできますか? –

+0

はい。私は私の答えを更新しました – dpaul1994

+0

ありがとう、本当にありがとう。 JavaScriptについてもっと理解するのにも役立ちます。 –

0

また、関数に全アイテムを渡すことができます。

<li ng-repeat="categories in model" ng-class="{'active':rowIndex == $index }" ng-click="selectRow(categories, $index)"> 
    <a href="">{{categories.catID + " " + categories.catName}}</a> 
</li> 

しかし、引数を次のように変更する必要があります:

$scope.selectRow = function (category, index) {} 
+0

それは私がやろうとしているようです。しかし、私のJavaScript/AngularJSに関する知識は現時点ではごくわずかです。私はそれだけではなく、それ以上にあると感じています。私は間違っているかもしれませんが! –

関連する問題