2

我收到一个 JSON 字符串并尝试将其映射到 KOJS VM,但我不明白为什么下面的代码不起作用。

这是我的 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);

这个问题可以帮助调试绑定:How to debug template binding errors for 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 回答