如何解决如何从JS局部视图.cshtml文件中的复选框中获取主要模态的动态更改Knockout js?
我有一个主视图_New.cshtml,从这个视图中我叫局部视图_Contact.cshtml。
_New.cshtml
这里有一个“打印”复选框,它根据参数dataModel.Files([@ i] .IsPrint
@for (var i = 0; i < Model.Files.Count; i++)
{
<div>
<strong>Print</strong>
<input type="checkBox" data-bind="checked: dataModel.Files()
[@i].IsPrint,value: dataModel.Files()[@i].IsPrint()"
id="IsPrint,click: getPrint.bind($data,@i)" name="Documents[@i].IsPrint" />
</div>
<div class="contactsgrid" data-bind="foreach: contacts">
@{
Html.RenderPartial("_Contact",Model);
}
</div>
}
_Contact.cshtml
我在这里也有一个复选框,其中我已将传递的dataModel绑定为“ IsEmail”。
@{var v = Model.Files[Model.Index].Contacts[Model.Index].IsEmail ? "true" : "false";}
<input type="checkBox" data-bind="checked:@v,click: $parent.getEmail.bind($data,@Model.Index)" />
new.js
两个视图都有通用的js文件。
this.getEmail = function (index) {
if (dataModel.Files()[index].IsPrint() == true) {
dataModel.Files()[index].IsPrint(false);
}
else {
dataModel.Files()[index].IsPrint(true);
}
return true;
};
this.getPrint = function (index) {
if (dataModel.Files()[index].IsPrint() == true) {
dataModel.Files()[index].Contacts()[index].IsEmail(false);
}
else {
dataModel.Files()[index].Contacts()[index].IsEmail(true);
}
return true;
};
因此,在contact.cshtml中的复选框上单击时,我正在为相应的索引更改模型中IsPrint的布尔值。最终,它在主视图中被选中或取消选中。但是,当我尝试单击“从主视图打印”,然后在js中更新IsEmail值时,模型值更改未反映在部分视图中(选中:始终保持初始值)吗?如何在局部视图中获取模型的范围并动态地更改参数?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。