对于我的表,我有以下代码:
##
<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作为参数的值,他给了我错误
有人能帮帮我吗?
发布于 2015-08-11 18:52:54
要访问控制器中的idD,只需设置一个可以容纳它的$scope即可。Angularjs在构建时考虑到了双向数据绑定,所以实际上这让您可以在视图中进行更改,这些更改将传递给控制器,也可以将控制器更改推送到视图中。
在本例中,只需确保将idD存储为ng-modle,该模型将链接回您在控制器中声明的作用域。一旦你有了正确的链接,你就可以在你的控制器中获得idD,没有问题。
发布于 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的示例:
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()。
https://stackoverflow.com/questions/31939619
复制相似问题