9

私はルートを持っています

/notes/#NoteId    NoteR    GET

別のページからリンクしたいです。「古典的な」集落を使用するとき、それは簡単です:

<a href=@{NoteR $ entityKey note}>notetitle

ページをより動的にし、note-informationとnote-idを含むJSONデータを取得したいと思います。正しくタイプセーフなリンク生成するにはどうすればよいですか?

このコードはすでに.juliusファイルに含まれていますが、「NoteId」が必要なため、コンパイルに失敗します。URL補間のどこかに挿入する必要obj.idがあります@{..}...それを行う方法の手がかりはありますか?

function loadnotes() {
var list = $("#results");
jQuery.getJSON("@{NotesR}",
    function(o){
        $.each(o, function (i, obj) {
            $('<a href=@{NoteR}/>' + obj.title + '</a>').appendTo(list);
        })});
}
window.onload = loadnotes;

編集:

私はこれを持っていますModel.hs

instance ToJSON (Entity Note) where
    toJSON (Entity nid (Note title content created_at updated_at userId)) = object
        [ "id" .= nid
        , "title" .= title
        , "content" .= (unTextarea content)
        , "created_at" .= created_at
        , "updated_at" .= updated_at
        , "userId" .= userId ]
4

1 に答える 1

6

NotesRノートIDだけでなく、完全にレンダリングされたURLをルートに返すことをお勧めします。

編集:このアプローチを示すためにクックブックエントリを追加しました:https ://github.com/yesodweb/yesod/wiki/Using-type-safe-urls-from-inside-javascript

于 2013-01-02T04:55:12.807 に答える