簡體   English   中英

AngularJS在ng-repeat內單擊ng

[英]AngularJS ng-click inside ng-repeat

我在ng-repeat內嵌套了ng-click,並且試圖在循環中傳遞當前項的值。 如果我檢查使用Chrome開發人員工具生成的html,它看起來正確(&ID = 1),但是當我在函數中放置斷點時,它會顯示&ID = {{{d.ID}}作為傳遞給函數的值。 任何幫助表示贊賞。

<tr ng-repeat-start="d in data">
    </td>
    <td> 
        <a href="#" ng-click="openDialog(false,'http://portal.sharepoint.com/Lists/Organization/DispForm.aspx?IsDlg=1&ID={{d.ID}}')"> {{d.OrganizationName}}</a> 
    </td> 
</tr>

我建議將Id作為openDialog方法的屬性傳遞,並在控制器中構建url字符串。

ng-click="openDialog(false,'http://portal.sharepoint.com/Lists/Organization/DispForm.aspx?IsDlg=1', d.ID)"

然后在控制器中構建字符串並執行位置更改。 更易於調試和使視圖整潔。

您還可以將此字符串存儲在控制器中' http://portal.sharepoint.com/Lists/Organization/DispForm.aspx?IsDlg=1 '

ng-click="openDialog(false, d.ID)"

試試吧:

 <tr ng-repeat-start="d in data">
            </td>
            <td> 
                <a href="" ng-click="openDialog(false,'http://portal.sharepoint.com/Lists/Organization/DispForm.aspx?IsDlg=1&ID='
+d.ID)"> {{d.OrganizationName}}</a> 
            </td> 
        </tr>

ngClick指令將計算一個表達式。 我想那不是你想要的

嘗試通過簡單的onclick更改ng-click。 它將解決您的問題:

更改

 <a href="#" ng-click="openDialog(false,'http://portal.sharepoint.com/Lists/Organization/DispForm.aspx?IsDlg=1&ID={{d.ID}}')"> {{d.OrganizationName}}</a> 

對於

 <a href="#" onclick="openDialog(false,'http://portal.sharepoint.com/Lists/Organization/DispForm.aspx?IsDlg=1&ID={{d.ID}}')"> {{d.OrganizationName}}</a> 

用ng單擊。 您無需使用{{}}即可獲取變量值。 就像這個來自Angular Docs的示例

<button ng-click="count = count + 1" ng-init="count=0">
  Increment
</button>
<span>
  count: {{count}}
</span>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM