grails remotefunction limitation

I stumbled apon a limitation of the grails remote function today. I have two drop down lists Products and Prices, with the Prices dependent on the particular Product selected, and also the customer in question. In order to achieve this, I needed to pass two params to the remote method.

There are two ways of using the params attribute of the remotefunction.

Option 1:

You can pass a string


<select onchange="${remoteFunction(action:'getRightPriceForProduct',update:'price', params:'\'productId=\' + this.value\'' )}">


</select>


Option 2:

you can pass a map


<select onchange="${remoteFunction(action:'getRightPriceForProduct',update:'price', params:[customerId:customer.id])}">


</select>


Option 1 allows me to use 'this' in javascript to send the product selected, and option 2 allows me to pass the customer's id at the page rendering time, but neither option allows me to do both at the same time.

One solution to choose option 1, and use document.getElementById to retrieve the value of the customer id


<select onchange="${remoteFunction(action:'getRightPriceForProduct',update:'price', params:'\'productId + \'&document.getElementById(\'customerId\')'
params:'\'customerI=\'document.getElementById(\'customerid\').value\'&productId= \' + this.value\')}">


</select>


A better solution is to implement your own taglib funtion like this


def ezbRemoteFuction= { attrs, body ->
def params = attrs['params']?:null
if(params){
String pString = "\'"
params.each { key, value ->
pString += "${key}=${value}&"
}
pString += "\'"
attrs['params'] = pString;
}
out << g.remoteFunction(attrs, body)
}
}

Comments

  1. oanh kích về phía hắc bào lão giả kia.

    - Tam tinh Đấu Tôn mà thôi, thật đúng là muốn chết.

    Hắc bảo lão giả hiện ra một vẻ khinh thường, hắc mang trực tiếp bắn về phía Nạp Duy Tư.

    - Chết.

    Hắc bào lão giả cười lạnh một hồi, màn lưới màu đen hung hăng phá về phía trước.

    - Ầm ầm.

    Từng tiếng vang khổng lồ ở trên không trung, thân thể của Nạp Duy Tư hóa thành một mảng huyết vụ pdongtam
    mu private
    tim phong tro
    http://nhatroso.com/
    nhac san cuc manh
    tổng đài tư vấn luật
    http://dichvu.tuvanphapluattructuyen.com/
    văn phòng luật
    tổng đài tư vấn pháp luật
    thành lập công ty
    http://we-cooking.com/
    chém gió
    trung tâm ngoại ngữhiêu tán ở trên bầu trời.

    Cảnh tượng này khiến cho mọi người phải hít vào một hơi, Nạp Duy Tư đúng là có thực lực tam tinh Đấu Tôn, thực lực này thật là quá kinh khủng.

    - Ta trước hết bắt ngươi.

    Hắc bào lão giả một lần nữa lại nhìn về phía Nhạc Kiều một bàn tay khô héo chụp về phía nàng, không gian cũng bị phiêu tán, Nhạc Kiều cũng bị một lực lượng khổng lồ bao vây quanh người.

    ReplyDelete

Post a Comment

Popular posts from this blog

AngularJs: User friendly date display with AngularJs and MomentJs

Getting started with Grails functional tests using Geb + Spock

Nerd Tree: A File Explorer with Mac Vim