JSP页面
<form>
<table class="countrys" data-name="tableCountry">
<tr bgcolor="lightgrey">
<th>Country ID</th>
<th>Country Name</th>
</tr>
<tr data-ng-repeat="c in allCountrys"
data-ng-click="selectedCountry(c, $index);"
data-ng-class="getSelectedClass(c);">
<td>{{c.countryId}}</td>
<td>{{c.countryName}}</td>
</tr>
</table>
</form>
控制器
$scope.selectedCountry = function(country, index){
angular.forEach($scope.allCountrys,function(value, key) {
if (value.countryId == country.countryId) {
$scope.selectedCountry = country;
}
});
$scope.selectedRowCountry = index;
}
$scope.getSelectedClass = function(country) {
if ($scope.selectedCountry.countryId != undefined) {
if ($scope.selectedCountry.countryId == country.countryId) {
return "selected";
}
}
return "";
};
CSS
tr.selected {
background-color: #aaaaaa;
}
我的页面上有这个表格,一旦我按下1行,它就会选择它,它会改变颜色,它会同时进入两个函数......
但是一旦我点击另一行,它就不会进入selectedCountry函数,而只会进入sgetSelectedClass函数
我不知道为什么,我只是不能选择一行,然后另一行等等......所以总是只选择一行
你帮我吗?答案 0 :(得分:2)
您将$scope.selectedCountry
定义为函数,但是在您第一次单击selectedCountry时,通过在ng-click函数内调用$scope.selectedCountry
将$scope.selectedCountry = country;
作为对象。
所以重新设定你的范围变量。
$scope.selectedCountry = function(country, index){
angular.forEach($scope.allCountrys,function(value, key) {
if (value.countryId == country.countryId) {
$scope.selectedCountry = country; // rename this scope variable
}
});