0

RESTful WebAPI サービスを使用してハイパーメディア リンクを含む JSON を返し、KnockoutJS マッピングを使用してビュー モデルにデコードしようとしましたが、理由はわかりませんが失敗し続けます。文字列化された JSON を手動で解析する必要があります。これは、クライアントがオブジェクト固有になり、求めていたソリューションの柔軟性が失われたことを意味します。

以下の単純化された例では、1 つのレストランの詳細を返し、予約またはメールのいずれかのアクションをいくつか実行します。

これがJSONです

{
    "Id": 1,
    "Name": "Kings Head",
    "NickName": "Kings",
    "_links": {
        "book": {
            "href": "/resturant/1/book",
            "title": "Book"
        },
        "email": {
            "href": "/resturant/1/email",
            "title": "Email"
        },
        "self": {
            "href": "/resturant/1"
        }
    }
}

動作するコードは次のとおりです。

var viewModel = {
   Name: ko.observable(),
   NickName: ko.observable()
};

$.getJSON('http://localhost:8080/resturants/1', function (jsonResult) {
   var str = JSON.stringify(jsonResult);
   var parsed = JSON.parse(str);
   viewModel.Name = (parsed.Name);
   viewModel.NickName = (parsed.NickName);
   ko.applyBindings(viewModel);
})

使用しようとすると:

viewModel = ko.mapping.fromJS(jsonResult);

それは失敗します。

どんな助けでも感謝します。

どうもありがとう、

ショーン

4

1 に答える 1

0

サービス コールから直接使用している場合は、シナリオのセットアップごとにfiddleを確認するjsonResult必要があります。viewModel = ko.mapping.fromJSON(jsonResult);

于 2013-10-26T05:44:16.070 に答える