9

我有路线

/notes/#NoteId    NoteR    GET

从另一个页面,我想链接到它。使用“经典”小村庄时,很容易:

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

我希望我的页面更加动态并获取包含注释信息和注释 ID 的 JSON 数据。如何生成正确类型安全的链接?

我已经将此代码保存在一个.julius文件中,但它无法编译,因为它需要一个“NoteId”。我应该obj.id在 URL 插值 @{..} 的某处插入...任何线索如何做到这一点?

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路由返回完全呈现的 URL,而不仅仅是注释 ID。

编辑:我添加了一个食谱条目来演示这种方法:https ://github.com/yesodweb/yesod/wiki/Using-type-safe-urls-from-inside-javascript

于 2013-01-02T04:55:12.807 回答