2015-09-18 22 views
0

我想訪問在ng-tableng-repeat內單擊的'事件',但我無法弄清楚如何訪問這個特定的'事件'( 'events'的索引)在我的控制器中。如何訪問ng-table中的對象的屬性ng-repeat

下面是相關HTML:

<table ng-table="events.tableParams"> 
    <tr ng-repeat="event in $data"> 
    <td>{{event.state}}</td> 
    <td> 
     <ul> 
     <li ng-repeat="option in event.options"> 
      <a href="" ng-click="events.performAction(option.value, event.id, option.type)">{{option.label}}</a> 
     </li> 
     </ul> 
    </td> 
    </tr> 
</table> 

...和我的控制器的相關章節:

vm.performAction = function(action, id, type) { 
    if (action === 'cancel') { 
    event.state = 'canceling'; 
    } 
}; 

event.state這個控制器代碼中是顯然是不正確,但更強調我嘗試在我的HTML中更新。

+0

'events'是我的'$ scope'對象。我使用'controllerAs'語法。所以'events.performAction()'是正確的,因爲它附加到範圍。 – MattDionis

+1

而不是傳遞'event.id'來執行行爲,只需傳遞'event'本身,那麼你就可以根據需要修改它。 (但請說出一些不太令人困惑的東西!:) –

回答

0

如上所述,event.state = 'canceling';在您的控制器中不正確。從你的問題看來,當用戶點擊列表時,你似乎試圖更新<td>{{event.state}}</td>

<td>{{event.state}}</td>綁定到$ data,由<tr ng-repeat="event in $data">指定,而該數據又綁定到events.tableParams。因此,在您的控制器中,您應該更新$scope.events.tableParams.state