Javascript KnockoutJs-处理具有相同字段的多个区域
我有几个区域具有在服务器端生成的可重复内容。我使用knockout js动态隐藏/显示区域内的区域。我的标记如下所示: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
<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。