由于视图模型为空,将剔除应用于填充的表单而不擦除表单的数据?

2024-02-04

我有一个脚本,通过将空视图模型应用到我的表单来初始化淘汰赛。

当用户在表单中输入数据时,视图模型会相应更新 - 这是预期的行为。

JavaScript

var viewModel = {
  myField : ko.observable(),
  init : function (somedata) {
    ...
    ko.applyBindings(this, container);
  },
  ...more stuff...
}

Partial

<%:Html.TextBoxFor(x => x.MyField, new Dictionary<string, object> { { "data-bind", "value: myField, valueUpdate: 'keyup'" } })%>

当我调用我的 javascript 以现有形式应用淘汰赛时,该值已经在MyField(然后在我的输入字段中)被我的淘汰视图模型中的空数据擦除(该视图模型是驻留在另一个文件中的 javascript 的一部分)。

当页面加载时,MVC 确保MyField输入元素填充了先前输入的数据MyField. When init被调用时,该字段将被视图模型中的值覆盖myField它是空的,因为它是一个静态 JavaScript 文件。

我该如何解决这个问题?


我尝试了两种方法来处理这样的事情:

1-如果您可以很好地控制服务器端(看起来就像您所做的那样),那么您可以考虑在视图中输出 javascript,将可观察值设置为正确的值。

会有点类似于这样:http://blog.stevensanderson.com/2010/07/12/editing-a-variable-length-list-knockout-style/ http://blog.stevensanderson.com/2010/07/12/editing-a-variable-length-list-knockout-style/。至少这一部分:

<script type="text/javascript"> 
    var initialData = <%= new JavaScriptSerializer().Serialize(Model) %>; 
</script>

您可以这样做,并在调用 applyBindings 之前集成initialData,或者可能只是发出直接将您的可观察值设置为正确值的javascript。

2-如果您对服务器端没有很好的控制(第三方控件或只是您此时无法/不愿意更改的东西),那么您可以考虑在页面加载后初始化您的viewModel,但是在调用 applyBindings 之前。您将找到您感兴趣的元素,从中读取元数据或值,并在让绑定完成其工作之前设置您的可观察量。

也许对你来说一个复杂的问题是,听起来目前你所有的 javascript 都在一个单独的文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

由于视图模型为空,将剔除应用于填充的表单而不擦除表单的数据? 的相关文章

  • OpenCV SVM 给出奇怪的预测结果

    我对 OpenCV 和支持向量机都很陌生 我想使用 SVM 训练具有两个标签的数据集 然后预测给定集合的标签 我当前的集合包含大约 600 行 具有相等的类分布 1 为 300 行 1 为 300 行 包含 34 列 这是我当前用于设置 O
  • .NET 中的 Class.forName() 等效项?

    动态获取对象类型然后创建它的新实例的 C 方法是什么 例如 如何在 C 中实现以下 Java 代码的结果 MyClass x MyClass Class forName classes MyChildClass newInstance Lo
  • C 中的 '\0' 和 printf()

    在 C 入门课程中 我了解到在存储字符串时存储空字符 0在它的最后 但是如果我想打印一个字符串怎么办 printf hello 虽然我发现它并没有结束 0通过以下声明 printf d printf hello Output 5 但这似乎不
  • 有没有办法找到dll公开的所有函数

    我一直在寻找一种方法来获取映射到 dll 中函数名称的所有字符串 我的意思是您可以调用 GetProcAddress 的所有字符串 如果你对 dll 进行十六进制转储 符号 字符串 就在那里 但我认为必须有一个系统调用来获取这些名称 如果您
  • 将视频上传/保存到数据库或文件系统

    我以前从未尝试过保存视频 所以我对此了解不多 我知道如果视频很小 我可以转换为字节数组并保存到数据库 但是为了提高效率 我想了解如何将任何上传的视频保存到我的服务器文件中 然后只保存该文件的文件路径我的数据库表中的视频 我完全不知道如何开始
  • 如何在Unity Inspector中创建多维数组?

    如何在 Unity Inspector 中创建枚举多维数组并使其可序列化 以便我可以从不同的脚本调用它 public enum colors red blue green yellow cyan white purple public in
  • 使用信号和槽更新指针

    我对 Qt 很陌生 请帮我解决这个问题 我正在使用线程在后台执行密集操作 同时我想更新 UI 所以我使用 SIGNALS 和 SLOTS 为了更新 UI 我发出一个信号并更新 UI 让我们考虑下面的示例代码 struct sample QS
  • 解析连接字符串

    是否有标准库或代码片段可以使用这样的连接字符串获取值 string connstr DataServiceUrl http localhost foo RemoteServerConnection server http localhost
  • 如何将 Boost Spirit 自动规则与 AST 结合使用?

    编辑 当我想在另一个规则上使用它时 我扩展了 sehe 的示例以显示问题 http liveworkspace org code 22lxL7 http liveworkspace org code 22lxL7 17 我正在尝试提高 Bo
  • Rx 在不同的线程上生产和消费

    我试图通过此处的示例代码来简化我的问题 我有一个生产者线程不断地输入数据 并且我尝试在批次之间添加时间延迟来对其进行批处理 以便 UI 有时间渲染它 但结果并不如预期 生产者和消费者似乎在同一个线程上 我不希望批处理缓冲区在正在生成的线程上
  • 使用“const cv::Mat &”、“cv::Mat &”、“cv::Mat”或“const cv::Mat”作为函数参数的区别?

    我已经彻底搜索过 但没有找到一个简单的答案 传递 opencv 矩阵 cv Mat 作为函数的参数 我们传递一个智能指针 我们对函数内部的输入矩阵所做的任何更改也会改变函数范围之外的矩阵 我读到 通过将矩阵作为 const 引用传递 它不会
  • ASP.NET MVC2:“System.MissingMethodException:没有为此对象定义无参数构造函数。”

    我目前正在尝试修改默认 MVC 项目的注册组件 以适应我的项目 为此 我修改了 RegisterModel Register aspx 和 AccountController 我可以很好地查看寄存器视图 但是当我提交时 我在标题中收到错误
  • C中使用JNI从对象获取对象

    public class Student private People people private Result result private int amount 这是 Java 中类的示例 在C中 我试图获取 学生 中的 人 但失败了
  • 如何在 stl 模板中使用导出类 (__declspec(dllexport))?

    我正在使用导出的类 class declspec dllexport myclass private template declspec dllexport class std map
  • 在链表程序中使用模板时重载 C++ 中的 << 运算符

    我正在尝试实现一个链接列表 但是当我尝试重载 include
  • 调用泛型类的方法

    这是上下文 我尝试编写一个映射器来动态地将域模型对象转换为 ViewModel 对象 我遇到的问题是 当我尝试通过反射调用泛型类的方法时 出现此错误 System InvalidOperationException 无法对 Contains
  • 打印任何类型的数组和列表的通用方法[重复]

    这个问题在这里已经有答案了 每当我调试一段涉及整数 双精度 字符串等数组或列表的代码时 有时我更喜欢打印它们 我为此所做的是为不同类型编写重载的 printArray printList 方法 for e g 我可能有这 3 种方法来打印各
  • Selenium - 模式对话框存在 - 如何接受信息?

    我有以下问题 在页面上提交一些日期后 我有一个如图所示的模式对话框 我想单击 ENTER 来浏览该模式 但它不起作用 我有以下代码 driver FindElement By CssSelector input submit Click A
  • 为什么 INT64_MIN 的定义不同?为什么他们的行为不同?

    The stdint h我公司的标题是 define INT64 MIN 9223372036854775808LL 但在我项目的一些代码中 一位程序员写道 undef INT64 MIN define INT64 MIN 92233720
  • MVC ASP.NET 或 Razor

    我对 MVC 很陌生 我对 Silver light WPF 和 MVVM 有相当多的了解 但对 MVC 知之甚少 我正在按照 Microsoft 网站上的主要教程进行操作http www asp net mvc tutorials get

随机推荐

  • 如何读取匿名类型的属性?

    我有一个返回的方法 return new System Web Mvc JsonResult Data new Status OK 我需要编写一个单元测试来验证这一点jsonResult Data status OK 如何读取状态属性 更新
  • couchDB 中的链式映射/归约

    在 couchDB 中 我有一组如下所示的项目 为了示例而简化 id 1 date Jul 1 user user1 id 2 date Jul 2 user user1 id 3 date Jul 3 user user2 etc 我想获
  • 实体框架修改分离对象

    我有一些困惑 源于此http msdn microsoft com en us library vstudio bb896248 v vs 100 aspx http msdn microsoft com en us library vst
  • Laravel 检查用户电子邮件是否已验证

    您好 我想检查用户电子邮件是否仅在控制器中的一个功能中进行验证 我不想在中间件或路径中设置检查 如下所示 public function construct this gt middleware verified 因为控制器可供访客访问 所
  • 没有分支或移位的绝对值,只有加/减和布尔值

    我们在学校为想要自我测试的学生遇到了这个问题 我在这方面花了相当长的时间 但无法弄清楚 AX 寄存器中有 16 位数字 该数字是有符号的 得到它的 绝对值 AX中的数字必须不变 编辑 寄存器数量没有限制 并且 AX 寄存器可以更改 但在函数
  • Azure API应用程序的IP地址以及如何限制IP

    我已经部署了用 Java Servlet 编写的 API 应用程序 我想知道的是 我的 API 应用程序的 IP 地址以及仅允许来自一两个 IP 地址的请求的方式 这意味着我想限制除这些 IP 之外的所有 IP 似乎一旦我在一个地区部署多个
  • Eclipse 上的自动代码完成

    我希望 Eclipse 在我编写一些变量 类名称或关键字时自动向我建议所有可能的选项 就像在 Flash Develop 或 Visual Studio 中一样 是否可以 如果没有 我可以使用哪个 Java IDE 获得这个 I m spe
  • SQL 和唯一的 n 列组合

    Oracle 有没有一种简单的方法来查询 n 个字段的唯一组合 我有非常简单的两场解决方案 CREATE TABLE combinations AS SELECT 1 AS n FROM DUAL UNION ALL SELECT 2 FR
  • 如何使用 ng-style 设置 li:before 的 css

    我想用可变范围 宽度 更改 li before 的宽度值 ul li span step stepName uppercase span li ul 我正在执行这段代码 但它不起作用 请帮助 不幸的是你不能拥有pseudoelements
  • 启用基于客户位置的付款方式

    我不知道是否可能 但是 我们需要为巴塞罗那添加一些不同的付款方式 因此 我们的想法是 如果客户居住在巴塞罗那地区 加泰罗尼亚 他将看到与西班牙其他地区不同的信用卡付款方式和银行转账账户 WooCommerce 可以做到这一点吗 Thanks
  • Codeigniter - 从 where_in 中删除单引号

    我有两个疑问 genres this gt db gt select Group Concat intGenreId strDJGenres gt from tblDJGenres gt where intDJId this gt sess
  • 使用 rustdoc 生成 markdown 文档?

    有没有办法在 doc 中生成单个 markdown 文件 评论 多个 Markdown 文件 doc main md doc foo md等 也很好 我是 Rust 新手 虽然生成的 HTML 文档很好 但我主要生活在命令行上 真的不想为了
  • .setValue() 不能始终适用于 Google Sheets 脚本

    我一直在努力处理我在 Google Sheet 中编写的一段脚本 该脚本的目的是监视给定单元格的输入值 来自键盘 并验证输入是否遵循数据输入标准 例如 所有输入值必须遵循标准XX XX X 举个例子 A5 03 1是可以接受的 而B555
  • Swift:反映 NSManagedObject 子类的属性

    当使用 Mirror 访问 NSManagedObject 子类的内部结构时 所有托管变量都将被忽略 public class Foo NSManagedObject NSManaged var bar String var f Foo c
  • Windows 7 上的端口转发

    如何在 Windows 7 上将端口 xxx 上的传入请求重定向到 localhost yyy 开发服务器 相对于 2008 仅允许从本地主机访问 这还不够好 我需要从不同的计算机测试我的应用程序 感谢大家的建议 尽管我自己找到了答案 我下
  • 将数据存储在 iPhone 本地

    我正在构建一个应用程序 我想在设备本地存储用户信息 而不使用任何服务器数据库 但一切都在设备端 我希望存储特定的用户位置并将其显示在表格视图中 因此即使用户稍后启动应用程序 我也可以提取历史记录并向历史记录表提供过去的位置 基本上是本地数据
  • 使用PHP将制表符转换为空格以进行HTML显示?

    我需要在网页中显示一个纯文本文件 其中包含两个空格制表符的数据列 我所做的是使用 PHP 读取文本文件并将其打印出来 pre 标签使用等宽字体 如下所示 pre pre pre
  • Visual Studio 中 Qt 特定结构的缩进损坏

    VS编辑器中的自动缩进显然不知道Qt 信号和槽的声明会自动格式化 如下所示 class MyClass public QObject Q OBJECT public MyClass signals lt Broken indentation
  • 有没有 PHP 函数可以将数字转换为带有千位分隔符的货币?

    有没有PHP函数可以转换integer十亿和千万 900800 gt 9 00 800 500800 gt 5 00 800 正如您所添加的Yii在你的问题标签中 你可以这样做Yii的方式如下 Yii app gt language en
  • 由于视图模型为空,将剔除应用于填充的表单而不擦除表单的数据?

    我有一个脚本 通过将空视图模型应用到我的表单来初始化淘汰赛 当用户在表单中输入数据时 视图模型会相应更新 这是预期的行为 JavaScript var viewModel myField ko observable init functio