Javascript 使用多视图模型剔除JSON
我有一个简单的淘汰设置,在其中我试图实现多个视图模型。它似乎解决了一个问题:我无法正确使用toJSON 我的html是:Javascript 使用多视图模型剔除JSON,javascript,json,knockout.js,Javascript,Json,Knockout.js,我有一个简单的淘汰设置,在其中我试图实现多个视图模型。它似乎解决了一个问题:我无法正确使用toJSON 我的html是: <!DOCTYPE html> <html> <head> <title>Playground</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet"
<!DOCTYPE html>
<html>
<head>
<title>Playground</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="content/css/bootstrap.css" type="text/css" media="all" />
<script type="text/javascript" src="lib/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="lib/knockout-3.2.0.js"></script>
<script type="text/javascript" src="lib/bootstrap.js"></script>
</head>
<body>
<div class="container" id="appHost">
<section id="nameHeader">
<label>
First Name:
<input data-bind="value: firstName, enable: canEdit" />
</label>
<button data-bind="click: toggleEdit" class="btn btn-primary">Toggle Edit</button>
</section>
<section id="other">
<label>
First Name:
<input data-bind="value: firstName, enable: canEdit" />
</label>
<button data-bind="click: toggleEdit" class="btn btn-primary">Toggle Edit</button>
</section>
<h2>Debugging View</h2>
<pre data-bind="text: ko.toJSON({name1: self.NameViewModel, name2: self.OtherViewModel})"></pre>
<script type="text/javascript" src="sample.js"></script>
</div>
</body>
</html>
如果我进行重构,使只有一个视图模型,并将JSON更改为使用$root,则页面将按预期工作。也就是说,我在HTML的调试部分看到了我的模型的JSON视图
如何使用toJSON获得视图模型特定的视图?或者,如何将整个页面作为单个JSON对象获取。有可能吗?我试过:
ko.toJSONNameViewModel
上面示例中的代码是我最近尝试查看这两个模型的代码
感谢您的帮助
维克我想
ko.toJSON($data, null, 2)
你应该完成你想要的不幸的是,这不起作用。更改后的行为:。没有改变。把它放在页面的顶部,就在你的顶部部分元素的正上方。如果您可以将代码放在JSFIDLE中以显示问题,这将更容易帮助解决。我误读了您的代码:看看这个,当您在何处调用它时,您不在这些绑定的上下文中。该数据对绑定到的元素有效。好的,这是有意义的。那么,在实现多个视图模型时,有没有一种方法可以将整个页面视为一个JSON,或者这是胡说八道呢?我的方法是每个视图模型一个视图。您可以让该视图包含多个对象,但我会为整个页面创建一个viewmodel。
ko.toJSON($data, null, 2)