2014-11-21 37 views
0

我在我的html中有一個ng-repeat循環。循環中涉及的變量顯示在表格行中。我需要允許用戶單擊所需的值並讓js函數接收該值,以便可以對其執行操作。 我的代碼的早期版本不會嘗試傳遞值,只顯示它,在這裏並按預期工作;顯示從filteredList各種主機值與鏈接屬性(下劃線,在我的情況)Angularjs,如何將範圍變量傳遞給在ng-repeat內部發生更改的js函數?

<tr data-ng-repeat="update in filteredList"> 
    <td> <a href="#">{{update.host}}</a> </td> 
    <td> {{update.date}} </td> 
    <td> {{update.num}} </td> 
</tr> 

我試圖通過主機的用戶點擊我的函數值「搜索」是在這裏,但它不工作:

<tr data-ng-repeat="update in filteredList"> 
    <td> <a href="#" ng-click="searcher({{update.host}})">{{update.host}}</a> </td> 
    <td> {{update.date}} </td> 
    <td> {{update.num}} </td> 
</tr> 

當遇到它,angularjs抱怨: 錯誤:[$ parse.syntax]語法錯誤:令牌 'update.host' 是一個意外,希望[:]在表達式的12列[搜索({{update.host}});]從[update.host}});]開始。

有人可以請告訴我一種可接受的方式來將angularjs傳遞給我的函數嗎?

非常感謝。

+1

'ng-click =「searcher(update.host)」' – 2014-11-21 14:28:32

+2

您不需要ng-click內部變量周圍的大括號。無論在這個問題的任何角度指令參數。 – sfotiadis 2014-11-21 14:29:05

回答

1

正如其他人在評論中提到,這會爲你工作:

<a href="#" ng-click="searcher(update.host)">{{update.host}}</a> </td> 

退房the documentation for ng-click,這表明它接受一個expression(所以你不需要{{binding}}語法)。

+0

完美,當然。感謝大家提出的基本上相同的東西。我忽視了關鍵的一塊。 – consultmac 2014-11-21 14:40:36

+0

不客氣,@consultmac。有時你需要的只是對問題的第二眼。 – jadarnel27 2014-11-21 14:46:04

0

這是做

<tr data-ng-repeat="update in filteredList"> 
    <td> <a href="#" ng-click="searcher(update.host)">{{update.host}}</a> </td> 
    <td> {{update.date}} </td> 
    <td> {{update.num}} </td> 
</tr> 
0

嘗試以正確的方式:

<td> <a href="#" ng-click="searcher(update.host)">{{update.host}}</a> </td> 

如前所述,您不需要NG-點擊內部變量周圍的花括號。無論在這個問題的任何角度指令參數。

相關問題