2013-07-15 12 views
13

ile tıklanabilir önyükleme satırı satırı Bir önyükleme ile biçimlendirilmiş bir tablom var. Bu tablonun içeriği Angular.js kullanılarak doldurulur. Bir satır tıklanabilir yapabilir miyim, böylece kapsamda bir işlev çağırır?Açılı

Tablo:

<table class="table table-hover"> 
     <thead> 
      <tr> 
       <th>Name</th> 
       <th>Status</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr ng-repeat="ingredient in ingredients" ng-click="setSelected({{$index}});"> 
       <td>{{ ingredient.name }}</td> 
       <td>{{ ingredient.status }}</td> 
      </tr> 
     </tbody> 
    </table> 

Denetleyici:

$scope.setSelected = function(index) { 
    $scope.selected = $scope.ingredients[index]; 
    console.log($scope.selected); 
}; 
+2

Ben sadece {{}} $ civarında kaldırmak gerektiğini düşünüyorum endeksi ama nasıl başarısız olduğunu daha iyi tarif etmelisiniz. Örneğin, giriş yaptığınızı ancak günlüğün çıktısını göstermediğinizi gösterirsiniz. – shaunhusain

+0

Hiçbir şey olmuyor, kayıt yok. Ancak {{$ index}} sayısal bir değere dönüştürülür. – Klaasvaak

cevap

42

Öneri ve fiddle:

Aşağıdaki kod benim için (ng tıklama kısmını) çalışmıyor

<tr ng-repeat="ingredient in ingredients" ng-click="setSelected();"> 
    <td>{{ ingredient.name }}</td> 
    <td>{{ ingredient.status }}</td> 
</tr> 

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

function MyCtrl($scope) { 

    $scope.ingredients = [ 
     {'name': 'potato'}, 
     {'name': 'tomato'} 
    ]; 

    $scope.setSelected = function() { 
     $scope.selected = this.ingredient; 
     console.log($scope.selected); 
    }; 

} 
</script> 
+0

fiddle doğru değilmiş gibi görünüyor –

+0

Güncelleyin, teşekkürler! – marko

+8

Denetleyiciyi ve şablonun kodunu ayırmak için 'ng-click =" setSelected (ingredient); "' ve '$ scope.setSelected = function (item) {...};' seçeneklerini kullanabilirsiniz. –

2

sadece argüman madde geçebileceği

ng tıklama = "setSelected (madde)"

ve denetleyici içinde

$scope.setSelected = function(my_ingredient) { 
     $scope.selected = my_ingredient; 
     console.log($scope.selected); 
    }; 
1

HTML:

<table class="table-hover"> 

CSS:

.table-hover > tbody > tr:hover { 
    background-color: #f5f5f5; 
} 

Ve tr seçimli yapılmış neyin da eğer:

HTML:

<tr ng-click="doSomething()"> 

CSS:

tr[ng-click] { 
    cursor: pointer; 
} 

View JSFiddle Sample

İlgili konular