Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 KnockoutJs-处理具有相同字段的多个区域_Javascript_Knockout.js - Fatal编程技术网

Javascript KnockoutJs-处理具有相同字段的多个区域

Javascript KnockoutJs-处理具有相同字段的多个区域,javascript,knockout.js,Javascript,Knockout.js,我有几个区域具有在服务器端生成的可重复内容。我使用knockout js动态隐藏/显示区域内的区域。我的标记如下所示: <div> <input type="checkbox" data-bind="checked: a1" /> <div data-bind="visible: a1">region0</div> </div> <div> <input type="checkbox" data-bi

我有几个区域具有在服务器端生成的可重复内容。我使用knockout js动态隐藏/显示区域内的区域。我的标记如下所示:

<div>
  <input type="checkbox"  data-bind="checked: a1" />
  <div data-bind="visible: a1">region0</div>
</div>
<div>
    <input type="checkbox" data-bind="checked: a2" />
    <div data-bind="visible: a2">region1</div>
</div>
<script>
    var viewModel = {
        a1: ko.observable(false),
        a2: ko.observable(false)
    };
    ko.applyBindings(viewModel);
</script>

区域0
区域1
var viewModel={
a1:ko.可观察(假),
a2:ko.可观察(假)
};
应用绑定(视图模型);
假设我有10个这样的区域。有没有更方便/更好的方法实现同样的目标? 比方说,我明确不想使用
foreach
绑定并在客户机上生成标记(以便使用禁用的js访问站点)

有没有办法省略viewModel规范(在
script
tags中的一部分),因为我觉得knockout可以检测并自动为我创建字段

另外,我是JS新手,所以请原谅我提一些简单的问题:)

有没有办法省略viewModel规范(脚本标记中的一部分),因为我觉得knockout可以检测并自动为我创建字段


虽然我个人更喜欢淘汰赛,但你可能想看看。Angular确实会自动创建视图模型属性,如图所示。

您在这里滥用了knockout.js,因此不要指望有一个简单的解决方案。我没有考虑过这一点。。似乎你是对的:)除了简单的js/jquery之外,还有什么更适合我的情况吗?如果你的实际场景不是更复杂,我会选择一个简单的jquery插件。不应该超过4-5行代码。或者有没有不使用jQuery的理由?没有,没有理由反对jQuery,我处理的事情比示例中要复杂一点。但是省略
部分,knockoutjs可以在几乎0行中完成这项工作。虽然这个例子可以重写为
onchange=“$('#region1').toggle();”
,看起来更简单,但在稍微复杂一些的场景中,它的可读性要差得多。所以,我试图为更复杂的场景找到一个工具:)在内部div(其中只有区域(n))中有什么内容?如果您的服务器正在生成代码,您还可以让服务器生成匹配的KO viewmodel。