2014-02-15 20 views
1

路過此處的模型到加入到DOM彈出窗口的問題是:Grails中

我有一個網頁,如www.app.com/home和我有一些窗戶,以幻燈片的方式加入到DOM通過jquery。其中一個窗口具有查看Gmail帳戶的聯繫人的功能。

這是這樣完成的:

  1. 用戶在主頁。
  2. 點擊的搜索好友按鈕,並與衆多選項(的jQuery添加,rthe內容是在另一個.gsp)
  3. 點擊選項的Gmail 幻燈片窗口並重定向到網上搜尋的OAuth, 權限和賬戶選擇,他必須接受 到他/她的聯繫人列表。
  4. 一旦接受,它會重新定向到我的主頁,我有一個 var知道它是否從谷歌回調,所以我運行了腳本 ,再次顯示彈出窗口。

問題我有,從主頁本身,我可以訪問具有$ {friendList}的控制器傳遞的模型,但是當我添加一些代碼到彈出窗口時,$ { friendList}未被檢測到。

+0

你如何將代碼傳遞給彈出窗口? – unekwu

+0

Ey burt,我用$('#divname')加載它。load(page url) –

回答

0

我已經使用grails渲染模板來解決過去的這個問題。你可以有一個隱藏的div,當jquery被彈出時被隱藏。 e.g

<div id="theSlideWindow" style="display:none"> 
    <g:render template="gsptemplate" collection="${friendList}" var="myfriend" /> 
</div> 

現在單擊該按鈕時,jQuery將取消隱藏div和動畫它不過你製作動畫。現在,這取決於friendList的大小,效率不高,因爲每次刷新都會加載它。

但你仍然可以讓jQuery的工作負荷執行以下操作:

  1. 添加用戶ID到一個隱藏的輸入。

    <input type="hidden" value="${userid}"/> 
    
  2. 使用jQuery所以發送ID作爲PARAM:

    $('button').click(function() { 
        var page = "gspurl/show?userid=" + $("#hidden").val(); 
        $("div").load(page, function(response, status, xhr) { 
        //do something here 
        }); 
        return false; 
    }); 
    
  3. 在你的GSP使用用戶ID來加載好友列表。

另一種選擇是使用一個控制器,該控制器返回html或json而不是gsp。

顯然,有幾種不同的方式傳遞friendList,但希望這給你一些想法。