AngularJS将字符串从ng-repeat List传递给前端函数
AngularJS Pass String into Frontend Function From ng-repeat List
我有一个有数百到数千本书的项目,我使用Java Rest后端来查询DB(也使用bootstrap):
- 我有一个具有唯一ID的图书的初始列表,我需要列出。最初列出的数据是书名和出版日期(ID仅用于生成列表)。
- 当一个书被点击时,它调用一个函数来获取额外的数据来显示。
- 在点击的书中,我有另一个函数,将上述所有数据重复到两个选项卡中(选项卡1用于书籍显示,选项卡2用于评论)。
当我试图将图书ID传递到函数调用时,它试图迭代我的整个图书列表(500k +图书),并且不调用特定的ID,我认为这是由于angular没有正确地写出HTML并刷新列表。bookId
我试过ng-click="getExtraBookInfo({{list.bookId}}) "创建:
ng-click = " getExtraBookInfo(34234234——34234234)"
但是没有正确传递,因为后端需要这种格式:
ng-click = " getExtraBookInfo(34234234——34234234)"
所以为了做到这一点,我需要在前端这样做:
ng-click = " getExtraBookInfo("{{list.bookId}}")"
这在上面的函数调用中工作得很好,但是repeater列表永远不会在制表符中进一步写出html。
当我调试代码时,它实际上是传递{{list。作为getExtraBookInfo()调用的Id !
注意:在我的services.js中,我使用http。
整体代码:<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-default" ng-repeat="list in bookList" ng-controller="BookListController">
<div class="panel-heading" role="tab" id="heading_{{list.bookId}}">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#panel_{{list.bookId}}" aria-expanded="true" aria-controls="panel_{{list.bookId}}" ng-click="getExtraBookInfo({{list.bookId}})">
{{list.bookTitle}} - {{list.bookDate}}
</a>
</h4>
</div>
<div id="panel_{{list.bookId}}" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="heading_{{list.bookId}}">
<div class="panel-body">
<ul class="nav nav-tabs">
<ul class="nav nav-tabs">
<li role="presentation" class="active"><a href="#showings_{{list.bookId}}" aria-controls="showings" role="tab" data-toggle="tab">Showings</a>
</li>
<li role="presentation"><a href="#comments_{{list.bookId}}" aria-controls="comments" role="tab" data-toggle="tab">Comments</a>
</li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane fade in active" id="showings_{{list.bookId}}">
<table class="table">
<thead>
<th>Showing</th>
<th>Location</th>
</thead>
<tbody>
<tr ng-repeat="book in getBookDataById({{list.bookId}})">
<td>{{book.showingName}}</td>
<td>{{book.showingLocation}}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
就这样做,不需要在传递参数时使用表达式
ng-click="getExtraBookInfo(list.bookId)"
找到我的问题了。首先像William B和Sajeetharan说我不需要{{}},但我也发现我的SQL传递的一切为空。这导致我发现我的rest服务没有从get url获取bookId,因为我没有正确地实现@PathParam。
https://www.mkyong.com/webservices/jax-rs/jax-rs-pathparam-example/谢谢大家!
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- JQuery合并了keyup和focusout两个函数
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 我可以在json对象中添加一个函数吗
- 可以前端maven插件使用节点,npm已经安装
- AngularJS:我可以跳过函数参数回调吗
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 如何在 JSF 中将 JS 函数作为 JSON 属性传递给前端
- 如何从Javascript前端传递值到训练回归函数
- AngularJS将字符串从ng-repeat List传递给前端函数
- Django使用前端python类中的函数
- 我如何在我的node.js-后端以及我的前端使用一个单独的js文件中的函数
- Javascript前端web开发中的递归函数用例