Angularjs + Spring Boot REST (HATEOAS) - 将角度变量传递给角度方法
Posted
技术标签:
【中文标题】Angularjs + Spring Boot REST (HATEOAS) - 将角度变量传递给角度方法【英文标题】:Angularjs + Spring Boot REST (HATEOAS) - Passing angular variables into angular methods 【发布时间】:2016-02-21 14:11:09 【问题描述】:问题在于属性 ng-click="deleteItem('| reservation._links.self.href |')
<body ng-app="ReservationList">
<div class="content" ng-controller="ReservationListController">
<div class="panel" ng-repeat="reservation in reservations">
<div class="itemId|reservation.id|">
<button class="close" ng-click="deleteItem('| reservation._links.self.href |')">X</button>
<div class="panel-heading clearfix">
<h3 class="panel-title">| reservation.firstName |</h3>
<h3 class="panel-title">| reservation.lastName |</h3>
</div>
</div>
</div>
</div>
</body>
有趣的是,当我检查 html 源代码时,ng-click 将如下所示:
ng-click="deleteItem('http://localhost:8080/reservation/1')"
但是,当启动 ng-click 函数时,它只会给出未编译的属性名称作为参数:
DELETE http://localhost:8080/%7B%7C%7B%20reservation._links.self.href%20%7D%7C%7D 405 (Method Not Allowed)
DELETE 请求应该以http://localhost:8080/reservation/1 作为端点,但不知何故,当我发送 DELETE 请求时它不会解析属性,只会因为这个未解析的 [ reservation._links.self.href ] 而惹恼我。
我是否应该使用 HAL 链接作为 CRUD 操作的端点,还是将 id 提供给我的删除函数更明智。
请注意http://localhost:8080/reservation/1 上的 DELETE 请求在我硬编码时确实有效。
【问题讨论】:
Angular 中是否有类似“| ]”的东西,因为我从来没有遇到过这种情况 如果我没记错的话,你会期望 " " 但是在角度你可以将语法更改为任何你想要的,所以我把它改成了 "[]" :)欲了解更多信息,你可以去docs.angularjs.org/api/ng/provider/$interpolateProvider 谢谢兄弟,我不知道这个。 【参考方案1】:您可以尝试不使用表达式语法并直接传递它:
ng-click="deleteItem(reservation._links.self.href)"
也许我错了,但我实际上并不熟悉这种语法:
ng-click="|expression|"
不应该改为这样(注意缺少管道|
)?
ng-click="expression"
另外,我认为您希望将 deleteItem 调用包含在表达式范围内,不是吗?
所以,你最终会得到这个:
ng-click="deleteItem(reservation._links.self.href)"
这会将对该HTML
元素的单击绑定到具有deleteItem
函数的范围内的模型/控制器的调用,并将表达式中所需的href 传递给它。
在此处阅读表达式:https://docs.angularjs.org/guide/expression
【讨论】:
是的,默认情况下它是 但我通过配置将其更改为 | ] 因为它与其他一些标签冲突。在没有标签的情况下直接传递它,谢谢:),我会尽快投票【参考方案2】:不要将Angular Expression
传递给函数。直接传递变量,不用。
你的情况
ng-click="deleteItem(reservation._links.self.href)"
【讨论】:
谢谢,马上修好了 :) 我会尽快投票以上是关于Angularjs + Spring Boot REST (HATEOAS) - 将角度变量传递给角度方法的主要内容,如果未能解决你的问题,请参考以下文章
通过发布请求,spring boot 和 angularjs 之间的错误请求错误
带有 spring-boot 和 angularjs 的 CORS 不起作用
Spring Boot - 具有安全性的 Angularjs $stateProvider