Angularjs data-ng-click不会再次工作......怎么样?

时间:2017-02-10 10:03:37

标签: javascript angularjs jsp

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函数

我不知道为什么,我只是不能选择一行,然后另一行等等......所以总是只选择一行

你帮我吗?

1 个答案:

答案 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
  }
});