2

JSON文字列を受け取ってKOJSVMにマップしようとしていますが、以下のコードが機能しない理由がわかりません。

これが私のJSファイルです:

var viewModel = {};

$.ajax({
  url: '../data/settings',
  cache: false,
  success: function(data) {
    alert(data);
    viewModel = ko.mapping.fromJS(data);
    ko.applyBindings(viewModel);
  }
});

最初のアラートは次のように表示されます。

{"remember":"false"}

動作していない私のHTMLは次のとおりです。

<span data-bind="value:remember"></span>

ここで何がうまくいかないか知っていますか?ありがとう!

4

2 に答える 2

2

データがJSON文字列ではない可能性があるため、代わりにfromJSを使用する必要があります。

viewModel = ko.mapping.fromJS(data);

この質問は、バインディングのデバッグに役立ちます。KnockoutJSのテンプレートバインディングエラーをデバッグする方法は?

于 2012-12-18T17:21:46.280 に答える
2

問題はバインディングコードにあると思います。

<span data-bind="value:remember"></span>

する必要があります:

<span data-bind="text:remember"></span>

このフィドルを参照してください:http://jsfiddle.net/kboucher/Jj9DZ/

'value'は、valueプロパティを持つフォームフィールド用です(selectボックスを含めるように抽象化することもできます)

于 2012-12-18T17:33:35.853 に答える