ng-repeat и событие mouseover

Это похоже на проблему объема, но я не уверен. Моя цель - выделить одну строку в таблице. это означает, что любая ранее выделенная строка возвращается в невыделенное состояние. строки создаются с помощью директивы ng-repeat, например:

<div id="myFedContents" style="height:320px" ng-controller="Controller2" class="scroller">
    <table border="0" class="span12 table table-condensed" style="margin-left:0px" id="tblData">
        <thead>
            <tr><th>Year</th><th>Name</th><th>Useful Flag</th></tr>
        </thead>
        <tbody id="allRows">
            <tr ng-repeat="item in itemlist | filter:thisText" ng-style="myStyle">            <td class="span1" valign="top"><a tabindex="-1" href="#">{{item.year}}</a></td>
                <td id="{{item.id}}">                                   <a tabindex="-1" href="#" ng-click="myStyle={'background-color':'#cccccc'};">{{item.name}}</a>
                </td>                                     <td>
                    <a href="#" class="btn btn-small btn-link">{{item.usefulflag}</a> 
                </td>                                 </tr>                             
        </tbody>
    </table>
</div>

у меня есть код в файле.js, который выглядит так:

$("tr").mouseenter(function(){
    alert("mouseenter");
});

строка в заголовке таблицы реагирует с предупреждением, но нет реакции от строк, созданных с помощью ng-repeat. как я могу исправить?

1 ответ

На самом деле вы можете достичь этого эффекта, используя ng-класс в сочетании с ng-mouseenter и ng-mouseleave, вот так:

<div id="myFedContents" style="height:320px" ng-controller="Controller2" class="scroller">
  <table border="0" class="span12 table table-condensed" style="margin-left:0px" id="tblData">
    <thead>
      <tr>
        <th>Year</th>
        <th>Name</th>
        <th>Useful Flag</th>
      </tr>
    </thead>
    <tbody id="allRows">
      <tr ng-repeat="item in itemlist | filter:thisText" ng-style="myStyle" ng-class="highlightclass" ng-mouseenter="highlightclass='highlight'" ng-mouseleave="highlightclass=''">
        <td class="span1" valign="top"><a tabindex="-1" href="#">{{item.year}}</a>
        </td>
        <td id="{{item.id}}"> <a tabindex="-1" href="#" ng-click="myStyle={'background-color':'#cccccc'};">{{item.name}}</a>
        </td>
        <td>
          <a href="#" class="btn btn-small btn-link">{{item.usefulflag}</a> 
        </td>
      </tr>
    </tbody>
  </table>
</div>

В этом случае вам не нужен синтаксис jquery. Если вы еще этого не сделали, вам также следует прочитать /questions/42141840/dumaete-v-angularjs-esli-u-menya-est-fon-jquery/42141845#42141845.

Другие вопросы по тегам