首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有< portlet :renderURL/>和spring mvc portlet的angularjs

带有< portlet :renderURL/>和spring mvc portlet的angularjs
EN

Stack Overflow用户
提问于 2015-08-11 18:44:02
回答 2查看 305关注 0票数 0

对于我的表,我有以下代码:

代码语言:javascript
复制
##
<tr ng-repeat="elt in tabDemandes">
  <td>{{elt.id}}</td>
  <td>{{elt.name}}</td>

  <portlet:renderURL var="maj">
    <portlet:param name="action" value="maj"/>
    <portlet:param name="idD" value="elt.id"/>
 </portlet:renderURL> 
</tr>
##

我想在控制器中恢复参数"idD“的值,但它将elt.id作为参数的值,他给了我错误

有人能帮帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2015-08-11 18:52:54

要访问控制器中的idD,只需设置一个可以容纳它的$scope即可。Angularjs在构建时考虑到了双向数据绑定,所以实际上这让您可以在视图中进行更改,这些更改将传递给控制器,也可以将控制器更改推送到视图中。

在本例中,只需确保将idD存储为ng-modle,该模型将链接回您在控制器中声明的作用域。一旦你有了正确的链接,你就可以在你的控制器中获得idD,没有问题。

票数 0
EN

Stack Overflow用户

发布于 2015-08-11 19:56:14

显然,不同之处在于JSTL标记库(<portlet:renderUR>L)在服务器上运行,而AngularJS和ng-repeat在客户端上运行。当AngularJS在你的内容上循环时,网址已经被呈现出来了。

有关服务器端和客户端的差异的更多信息,请查看以下答案:What is the difference between client-side and server-side programming?

我们所做的非常简单,我们将URL附加到我们的模型(在你的例子中是tabDemandes)。以下是我们使用ID作为参数创建操作URL的示例:

代码语言:javascript
复制
PortletURL detailURL = response.createActionURL();
detailURL.setParameter(ActionRequest.ACTION_NAME, "detailTask");
detailURL.setParameter("id", Long.toString(task.getId());
task.setDetailURL(detailURL.toString());

在本例中,我们使用了任务列表,并使用此操作URL打开任务的详细页面,因此我们必须将ID传递给操作URL。我们没有使用JSTL标记库,而是使用Java API。

在您的情况下,可能需要使用response.createRenderURL()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31939619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档