AngularJS ng-click inside ng-repeat
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)"
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-click。您不需要使用 {{}} 来获取变量值。就像 Angular Docs
中的示例一样
<button ng-click="count = count + 1" ng-init="count=0">
Increment
</button>
<span>
count: {{count}}
</span>
试一试:
<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>
我在 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)"
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-click。您不需要使用 {{}} 来获取变量值。就像 Angular Docs
中的示例一样<button ng-click="count = count + 1" ng-init="count=0">
Increment
</button>
<span>
count: {{count}}
</span>
试一试:
<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>