2

私はプレイフレームワークを使用してプロジェクトを行っています。

たとえば「show」などのリンクをクリックすると、car.show(55) が呼び出され、car.show でいくつかの db クエリが実行されます。その後、リスト操作が行われています。

私がやろうとしているのは、java スクリプト ファイルから removegivencar 関数を呼び出すことです。

つまり、

すべての車が html ファイルにリストされている場合。その車の ID で js 関数を呼び出します。

例: マイカーを削除

html の代わりに js で car.removegivencar 関数を呼び出したいと思います

私は車のIDを持っているからです。@{car.removMyOwremovegivencar(mycar.id)} 操作を行う必要があります...

私は試した

function removeMyCar(id)
{
window.location="@{car.removMyOwremovegivencar(id)}";
}

または window.location="@{car.removMyOwremovegivencar(" + id + ")"

などしかし、それを行うことができませんでした:(((この問題について私を駆り立ててください...

4

3 に答える 3

7

正しく書かれていれば、うまくいくはずです。しかし実際には、DB からエンティティを削除するのは悪い例です。これは、使用しようとしている GET リクエストが原因です。削除に GET を使用することは論理的であるだけでなく、アプリケーションにとって危険な場合もあります。ただし、この方法で使用する場合は、次の点を確認してください。

route ファイルには次のようなものが含まれている必要があります。

GET    /car/remove/{id}         car.removMyOwremovegivencar()

また、js コードを呼び出そうとしているビューに id パラメータを渡すようにしてください。このコードが機能しない理由は他にありません。

しかし、より良い方法を検討してください:

このアクションを POST または DELETE にし、AJAX 呼び出しを行います。

ルート:

DELETE   /car/{id}         car.removMyOwremovegivencar()

およびあなたのJS(jQueryを使用):

function removeMyCar(id)
{
   $.ajax({
    type: "DELETE",
    url: "@{car.removMyOwremovegivencar()}",
    data: {
      id:id
    }
   });
}
于 2012-05-16T06:19:47.010 に答える
2

簡単な答えは、javascript から Java メソッド/関数を直接呼び出すことはできないということです。ただし、関数を呼び出すサーバー側リソースに ajax リクエストを行うことはできます。ajax リクエストの結果は、選択した形式の関数の結果になります。

于 2012-05-16T03:22:28.630 に答える
1

この投稿が役に立ちます: javaScriptRouter

この例では、このコードで URL を取得できます

var url = jsRoutes.controllers.Application.plus(num1,num2).url;

于 2013-04-11T19:24:21.883 に答える