function myFunction() { if (${myservice.isSomethingAvailable()}) { [."> function myFunction() { if (${myservice.isSomethingAvailable()}) { [."> function myFunction() { if (${myservice.isSomethingAvailable()}) { [." />

Grails 2.0:GSPのjavascript関数でサービスを使用する

私は、GSP内の関数の中からサービスのメソッドをどのように呼び出すことができるのか不思議です。私は以下を試みたが、うまくいかないようだ。

<%@ page import="com.company.MyService" %>
<%
    def myService =grailsApplication.classLoader.loadClass('com.company.MyService').newInstance()
%>
<html>
<head>
[...]
<script language="javascript">
    function myFunction() {

        if (${myservice.isSomethingAvailable()}) {
           [...]
        }
    }
</script>

私はかなりjavascriptとGrailsの新しいです。それを達成する方法やそれが可能であるかどうかはわかりません。どんな助けもありがたい。

どうもありがとう

ジョナス

0

1 答え

  1. loadClass().newInstance() creates new instance of object, not spring bean (i mean it's not tied to grails infrastructure), i'm sure it's not what you want
  2. You can pass service from your controller, like render(model: [myService: myService]) (you have to declare it at controller lever)
  3. It's much more correct way is to pass result of this call, not service itself. I mean: render(model: [isSomethingAvailable: myService.isSomethingAvailable]) and test it as if ($(isSomethingAvailable)) {
  4. Notice that gsp is processed in server-side, not client-size. So it doesn't matter where you use your variable - on JavaScript code, or html code. And also, you can use gsp if tag: instead of preparing JavaScript to check value on client-side (because you already know the result)
3
追加された
ありがとうございます...コントローラからの変数を渡すことは、夢のように動作します。
追加された 著者 Jonas,
回答3の+1
追加された 著者 Philippe,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript