首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >播放框架,ajax和get请求reusability..how?

播放框架,ajax和get请求reusability..how?
EN

Stack Overflow用户
提问于 2012-03-13 09:25:18
回答 2查看 252关注 0票数 1

标签使我编写具有_ticket的html,而当我为ajax编写html时,我会编写"ticket“。下面是ajax调用的html ...(请注意变量ticket)

代码语言:javascript
复制
<div>
    <div class="entry">
        <div class="spacer"></div>
        <span class="label ">Release<span>(Optional)</span></span>
        <span class="input ">
            #{select 'ticket.release', items:releases, valueProperty:'id', labelProperty:'name', value:ticket?.release?.id/}
        </span>
        <div style="clear: both;"></div>
    </div>
</div>

<div>
    <div class="entry">
        <div class="spacer"></div>
        <span class="label ">Subproj/Cat.<span>(Optional)</span></span>
        <span class="input ">
            #{select 'ticket.subproject', items:subprojects, valueProperty:'id', labelProperty:'name', value:ticket?.subproject?.id/}
            <a id="newinfo" class="help" title="&{'help.subproject'}">Help</a>
        </span>
        <div style="clear: both;"></div>
    </div>
</div>

如果我想在另一个页面中重用这个页面,如下所示

代码语言:javascript
复制
#{projectInfoPage ticket:ticket}

它不会工作,因为我必须在每种情况下修改上面的页面为_ticket,这样它才能工作(我更喜欢seam有全局变量的方式和传入的能力,在这种情况下,我只需要使用全局票证并完成)。

无论如何,有没有一种方法可以在playframework中编写这样的脚本,以便上面的页面在两种情况下都能工作?哦,等等,作为一个标签,它必须放在标签文件夹中!很好。

嗯,我能想到的解决这个问题的唯一干净利落的方法是让标签为#{projectInfoTag ticket:ticket},然后将上面的代码移到projectInfoPage.html文件夹中,然后将#{projectInfoTag ticket:ticket}添加到我的主页中,以便get和for ajax调用都可以使用。这有点丑陋。还有人遇到过这个问题吗?有什么方法可以去掉多余的文件,让它可重用吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-13 14:41:39

上面的代码是可以重用的,你只是在很多地方把ticket改成了_ticket。在您的select标记中,name元素(即在POST中发送到服务器的位,因为名称不需要更改。这是纯文本而不是变量。

因此,您的代码应该如下所示...

代码语言:javascript
复制
#{select 'ticket.release', items:_releases, valueProperty:'id', labelProperty:'name', value:_ticket?.release?.id/}

这将要求您传入releases列表和ticket属性。请注意,开头的ticket.release部件前面没有下划线。这将意味着select的值以正确的方式发送到服务器。

此外,如果您只想要一段不是标记的可重用HTML代码,那么可以使用include标记。

http://www.playframework.org/documentation/1.2.4/tags#include

如文档所述...include包含另一个模板。当前模板的所有变量都可以直接在包含的模板中使用。

代码语言:javascript
复制
<div id="tree">
    #{include 'tree.html' /}
</div>
票数 2
EN

Stack Overflow用户

发布于 2012-03-13 12:37:59

这并不是很优雅,可能有一个更好的解决方案,但你可以在你的标签中这样做:

代码语言:javascript
复制
#{if _ticket}
    #{set ticket:_ticket}
#{/if}

这会将ticket变量设置为参数_ticket。显然,在已经设置了ticket而没有设置_ticket的情况下,上面的if语句将返回false,因此ticket仍将按原样工作。

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

https://stackoverflow.com/questions/9677143

复制
相关文章

相似问题

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