javascript - Angular ng-repeat 将参数传递给 href 链接

标签 javascript jquery ajax angularjs grails

我有一个现有的 grails 应用程序,使用 GSP 和自定义 tagLibs 构建。我需要合并一些使用 AngularJS 的新代码。 我是 AngularJS 的新手。

具体来说,我有使用自定义标签生成的现有链接,例如:

<g:custonSearchLink id="${ent.id}" >

评估为

<a href="fullPath/controllerName/method/X", onclick="jQuery.ajax((type:'POST', url:'fullPath/controllerName/method/X', success:function(data,textStatus){jQuery('tableDiv').html(data);}, error:function(...)){}});return false" >...

其中 X 是 id 参数。我需要让 ng-repeat 生成这些链接,并将“X”参数值传递到 href 和 ajax url 路径中。

所以我明白我可以只使用嵌套的大括号“{{}}”将 X 参数从对象传递到 href 字符串中,

<li ng-repeat="obj in myList track by obj.id" >
  <a href="fullPath/controllerName/method/{{obj.id}}"

但是 onclick ajax url 嵌套在 onclick 字符串内的单引号字符串中。我怎样才能将“X”参数传递给它? 这不起作用:

onclick="jQuery.ajax((type:'POST', url:'fullPath/controllerName/method/{{obj.id}}', 

请注意,在我的例子中,“fullPath”是“https://localhost:8453/”,因为响应 AJAX 调用的服务器运行在与托管 GSP 的服务器不同的端口上。

最佳答案

使用 ng-hrefng-click允许您在 javascript 事件处理程序中使用 AngularJS 范围变量。像这样:

<div ng-repeat="someItem in list track by someItem.id">
  <a ng-href="/your/url/to/this/id/{{ someItem.id }}"></a>
  <button ng-click="$scope.someAction(someItem.id)"></button>
</div>

因此您的特定点击事件处理程序将是:

ng-click="jQuery.ajax((type:'POST', url:'fullPath/controllerName/method/{{obj.id}}'"

正如 Shashi 所提到的,您可以在范围函数中触发 HTTP 请求,尽管您当前使用内联 AJAX 处理此请求的方式应该可行。

关于javascript - Angular ng-repeat 将参数传递给 href 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33222162/

相关文章:

javascript - 单击另一个图像时检索图像源?

javascript - 替代 window.load

javascript - 代码镜像 - 仅在编辑器内实现拖动滚动(正文的常规滚动)

javascript - Jquery-Steps : going back stucks with end less loop, 如果你之前跳过了一个步骤

javascript - jQuery 全局 Ajax 事件处理程序的用例?

javascript - 哪个 JavaScript 函数可用于将字符数组转换为数字?

java - BouncycaSTLe PBEWITHSHA256AND256BITAES-CBC-BC Javascript 实现

java - 休息 Controller 工作,但 ajax post 方法返回错误

javascript - 使用ajax提交表单有什么优缺点?

javascript - 使用 jQuery 模板插件和分页插件通过客户端分页显示动态生成的记录时出现问题