Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从JSON中剔除JS映射不起作用_Javascript_Jquery_Knockout.js_Knockout Mapping Plugin - Fatal编程技术网

Javascript 从JSON中剔除JS映射不起作用

Javascript 从JSON中剔除JS映射不起作用,javascript,jquery,knockout.js,knockout-mapping-plugin,Javascript,Jquery,Knockout.js,Knockout Mapping Plugin,我正在接收一个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)

我正在接收一个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>

你知道这里可能出了什么问题吗?谢谢

看起来您的数据可能不是JSON字符串,因此您希望改用fromJS:

viewModel = ko.mapping.fromJS(data);

此问题有助于调试绑定:

看起来您的数据可能不是JSON字符串,因此您希望改用fromJS:

viewModel = ko.mapping.fromJS(data);

此问题有助于调试绑定:

我认为问题可能在于绑定代码:

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

<span data-bind="text:remember"></span>
看这把小提琴:


“value”用于具有value属性的表单字段,可以抽象为包含选择框

我认为问题可能在于绑定代码:

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

<span data-bind="text:remember"></span>
看这把小提琴:



“value”用于具有value属性的表单字段,可以抽象为包括选择框

很好的建议。我也尝试过这个方法,但当我这么做时,它显示的长度为0。您的viewModel.length将始终为0,因为viewModel是一个函数。这个问题有助于调试绑定:+1以获得良好的链接参考。你应该把这句话写进你的回答中。我也尝试过这个方法,但当我这么做时,它显示的长度为0。您的viewModel.length将始终为0,因为viewModel是一个函数。这个问题有助于调试绑定:+1以获得良好的链接参考。你应该把它放在你的answerAFAIK中,KnockoutJS视图模型是一个对象文本,因此没有长度属性。这些知识可能会使调试过程更加顺利:谢谢,@Kevin!一个KnockoutJS视图模型是一个对象文本,因此没有长度属性。哦,好的。这些知识可能会使调试过程更加顺利:谢谢,@Kevin!“接得好,”凯文说。事实上,我刚刚发现了这一点,并做出了改变;不过还是没有骰子。好吧,这在小提琴上很管用。但是我不得不省略你对映射对象的调用,可能问题就在那里。啊,是的,很好的观点@Kevin。如果我使用JSON.parse,它就会工作。但它似乎在绘制地图时遇到了麻烦。人力资源管理!最后,我很确定这是我的错误。如果我使用fromJSON并正确设置了该映射,那么映射就可以工作。谢谢@Kevin!“接得好,”凯文说。事实上,我刚刚发现了这一点,并做出了改变;不过还是没有骰子。好吧,这在小提琴上很管用。但是我不得不省略你对映射对象的调用,可能问题就在那里。啊,是的,很好的观点@Kevin。如果我使用JSON.parse,它就会工作。但它似乎在绘制地图时遇到了麻烦。人力资源管理!最后,我很确定这是我的错误。如果我使用fromJSON并正确设置了该映射,那么映射就可以工作。谢谢@Kevin!