当具有复杂类型时,KnockoutJs 中的值绑定无法进行选择

2024-04-13

我正在尝试在选择元素上使用值绑定,如本小提琴中所述:http://jsfiddle.net/MikeEast/nM6dd/2/ http://jsfiddle.net/MikeEast/nM6dd/2/

但是,我似乎无法设置所选选项(值绑定)。

我知道我可以使用 optionsValue 绑定,但这会使值成为字符串而不是对象,这是不可取的。如果这是唯一的方法,我该如何确保所选选项写回视图模型?

Thanks!


这是解决方案。您必须添加该属性optionsValue: 'id'到数据绑定。 您还必须在 viewModel 中放置一个返回所选对象的函数。

var viewModel = function() {
  this.items = ko.observableArray([
    { id: 1, name: "Apple" }, 
    { id: 2, name: "Orange"},
    { id: 3, name: "Banana"}
  ]);
  this.selectedItemId = ko.observable(3);
  this.selectedItem = function() {
    var self = this;
    return ko.utils.arrayFirst(this.items(), function(item) {
      return self.selectedItemId() == item.id;
    });
  }.bind(this);
};

var vm = new viewModel();
ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/1.2.1/knockout-min.js"></script>
<select data-bind="options: items, optionsText: 'name', optionsValue: 'id', value: selectedItemId"></select>
<span data-bind="text: selectedItem().name"></span>

Cheers!

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

当具有复杂类型时,KnockoutJs 中的值绑定无法进行选择 的相关文章

  • 暂停 knockout.js 1.2.1 中的绑定

    淘汰赛中有暂停和恢复绑定的选项吗 版本 knockout js 1 2 1 我们需要暂停绑定的原因如下 在某些操作过程中 我们必须从服务器加载大量数据 例如 多个选择的整个数据都已更改 有些表的行是动态添加的等 现在 在当前场景中 表单与视
  • Knockback.js 生产准备好了吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 当鼠标离开父级时,为什么 IE 8 会因引导、淘汰验证和自定义绑定处理程序而崩溃?

    好吧 这是一个疯狂的错误 我和同事无法弄清楚 Internet Explorer 8 崩溃 没有控制台错误消息 当使用具有自定义绑定 数据绑定 的无线电输入更改淘汰可观察值并且您移出父 DOM 容器时 就会发生这种情况 在 IE 8 浏览器
  • 两个相互依赖的字段的淘汰验证

    考虑下面的代码 var MyObjectModel function myObject var self this self myNumber1 ko observable myObject number1 trimmed self myN
  • 使用 knockout.js 防止双击按钮

    禁用按钮以便 Knockout js 不会发生双击的最佳方法是什么 我有一些用户快速点击导致多个 ajax 请求 我认为 knockout js 可以通过多种方式处理这个问题 并希望看到一些替代方案 使用信号量 旋转锁 基本上 您计算一个元
  • Knockout ObservableArray 不更新 HTML Foreach

    所以我有一个可以正常工作的 observablearray 但 UI 没有更新 我读过很多人遇到这种类型的问题 但我没有看到 所以 HTML 是 tbody tr td span class label label success Yup
  • 如何使用 URL 将数据从 javascript 发送到 ASP.NET MVC 控制器

    我需要一些帮助 我使用 ASP NET MVC4 以及 JavaScript 和 Knockout 编写了一个小应用程序 但我无法将数据从 javascript 发送到 MVC 控制器 反之亦然 例如JS部分是这样的 JavaScript
  • 敲除映射导致堆栈溢出

    我正在尝试淘汰赛和映射插件 并想知道为什么这不起作用 我有一个要使用映射扩展加载的视图模型 function todoListViewModel data ko mapping fromJSON data todos TodoItem op
  • 对模板之一的 observableArray 进行排序

    我有以下视图模型 function instance id FirstName extend this id ko observable id FirstName ko observable FirstName 我在 observableA
  • 淘汰赛绑定,每个都可进行自定义

    我这里有一个情况 用于淘汰每个带有定制的绑定 这是我的代码 div div table tbody tr td td td td tr tbody table div div
  • knockout valueUpdate 无法与 Pagedown 一起使用?

    我的看法有以下几点
  • 使用淘汰赛动态显示/隐藏元素

    我有一个表 有四列 即代码 名称 数量和价格 其中 我想动态更改数量列的内容 元素 通常 它应该显示其中显示数量的元素 当用户单击元素时 我想显示该元素 以便用户可以编辑数量 我正在尝试按照 示例2 来实现淘汰赛文档链接 http knoc
  • 有没有办法一次性禁用一堆表单元素?

    我想根据某些条件禁用 HTML 表单元素的一部分 这似乎是执行此操作的理想方法 fieldset fieldset
  • Knockout.js:有条件绑定div的title属性

    我的页面上有一个 viewModel 它保存一些设备当前状态概述的数据 到目前为止 除了一个问题之外 一切都运行良好 我需要根据 viewModel 中的另一个值设置 div 元素的 title 属性 我知道您基本上可以像这样设置 titl
  • 使用 KnockoutJS 映射插件执行部分更新

    现在 我将这个 JSON 与 KO 映射插件一起使用 并且工作正常 Controls Fields Name emailField Text email Visible true Name hiddenField Text text Vis
  • 淘汰foreach绑定无序列表

    首先 圣诞快乐 希望圣诞节那天没有其他人在工作 除非他们是出色的专家并且真的很想帮助我 我正在使用神话般的jQuery 列导航插件 http code google com p jquery column navigation 以多列方式向
  • 淘汰赛,内容可编辑(和降价)

    使用由 markdown 字符串支持的 Knockout 绑定处理程序并进行渲染 使用 markdown js 和内置的 html 绑定处理程序 工作正常 但尝试添加内容可编辑行为 并且在可观察值未在模糊时更新或仅使用删除了所有降价格式的文
  • 使 Knockout applyBindings 将选择选项视为数字

    我将 Knockout 与 html select option 结合使用 请参阅Fiddle http jsfiddle net hf5gb
  • 禁用淘汰排序中的单个项目

    在淘汰赛排序中 我知道您可以使用禁用可排序列表isEnabled in the sortable捆绑 我还知道您可以使用禁用移动项目cancelDrop in a beforeMove功能 问题是 isEnabled禁用整个列表 并且can
  • Onclick使用knockout js绑定图像

    我想显示来自 allDoorColorStandard 的图像 HTML 单击 颜色数据 div 我想更新图像 在警报中 我正在获取图像 URL 现在需要绑定到图像标签中 div img class mappimg width 45 hei

随机推荐

  • 通过批处理文件终止 MS Access 进程

    我尝试打开 MS Access 延迟大约 5 秒 然后关闭应用程序 使用下面的 bat 文件 我可以打开程序 但在延迟后无法将其关闭 echo off start B Access C Program Files x86 Microsoft
  • 如何让 Emacs 在保存文件时创建中间目录?

    有没有办法在 emacs 中创建文件夹树 类似于 mkdir p in bash 基本上 我希望 emacs 创建所有中间模具 如果它们不存在 当我保存文件时 功能make directory这样做 您的具体问题可能会这样解决 add ho
  • 使用 AngularJS 为 Windows 应用商店应用程序“无法添加动态内容”,但它可以工作

    我正在使用 AngularJS 创建一个 Windows 应用商店应用程序 或 Metro 应用程序 或无论他们如何称呼它 我解决了 Javascript 运行时错误 无法添加动态内容 该错误导致应用程序崩溃 请参阅here http on
  • 为什么 Java 在其语言语法中不使用 out 参数,而 C# 则使用?

    虽然我不太喜欢在 C 中使用 out 参数 但我想知道为什么 Java 选择不在其语言语法中包含它 是否有任何特殊原因 或者可能是因为一个人可以简单地将对象作为参数类型传递 可能是因为设计者觉得没有必要允许多种返回对象的方式 关于委托 泛型
  • 区分按下“home”按钮和打开另一个 Activity

    我有三项活动 飞溅活动 主要活动 玩家活动 当然 应用程序从 SplashActivity 启动 然后启动 MainActivity 并关闭 MainActivity 在某个时刻启动 PlayerActivity 并进入后台 MainAct
  • Spring 与 Hibernate - 线程“main”中的异常 java.lang.NullPointerException

    我正在学习 spring 与 hibernate 集成 我遇到了这个异常 Exception in thread main java lang NullPointerException Sep 04 2014 7 06 50 PM org
  • 如何将WCF项目平台目标更改为x86?

    我编写了一个使用第三方项目的项目 只有在 项目属性 下的 构建 下的 平台目标 设置为 X86 而不是 我的项目 中的 任何CPU 时 我才能运行它 但是 当我尝试将此第三方项目与我的 WCF 项目一起使用时 平台目标 功能不会出现在 WC
  • Jenkins BlueOcean 中的“分支索引”活动是什么

    我正在詹金斯蓝海中设置多分支管道 一切都开始顺利进行 我注意到的一件事是 每隔一段时间 我就会执行名为 分支索引 的作业 我的构建包含一些繁重的单元测试和代码覆盖率 需要大约 4 小时 30 才能执行 所以让这个作业随机执行 2 次并不是很
  • 使用 Popen 替换 Python 中的 Bash 进程

    我试图通过从 python 子进程库调用 ffmpeg 来创建循环视频文件 这是给我带来问题的部分 import subprocess as sp sp Popen ffmpeg f concat i lt for f in Desktop
  • Oracle 在组中的列中查找具有多个值的行

    我正在尝试查找某个零件号 组 是否有多 个运营商 我已经尝试过下面的代码但不起作用 SELECT PART NO CARRIER ROW NUMBER OVER PARTITION BY PART NO CARRIER ORDER BY P
  • 如何向菜单项添加工具提示?

    我正在尝试为菜单栏项添加工具提示 例如 Save 但我无法获取需求菜单项的实例 我可以添加这个工具提示吗 我正在使用 Tkinter 和 python 2 7 def createMenu self menu Menu root root
  • 编写java代码时出现SIGSEGV

    我有一段代码在 HTC Desire HD v2 3 3 上运行得很好 但是在 HTC Desire v2 2 上运行时 关闭蓝牙套接字时会崩溃并出现 SIGSEGV 07 25 16 23 52 462 INFO DEBUG 64 07
  • 如何调用.Net Core需要签名的XML SOAP服务?

    我意识到这个问题指的是旧技术 我正在呼叫供应商系统 并且无法更改服务 我们需要调用 XML SOAP WS 然后签署请求 10 年前 我会使用 Web 服务增强 WSE 3 0 之类的东西 然后继续前进 就像今天一样 我陷入了在 Net C
  • 持久性单元定义冲突

    春季3 1 1 Maven 3 0 4 日本PA Eclipse wtp 靛蓝 你好 我在服务器启动时遇到以下异常 我的项目中只有一个 persistence xml 有任何想法吗 谢谢埃里克 引起原因 java lang IllegalS
  • Node.js 找不到模块“tcp”

    节点在以下行崩溃 var tcp require tcp 错误文本 node js 201 throw e process nextTick error or error event on first tick Error Cannot f
  • 可折叠工具栏布局中的稀松布是什么?

    我在 Android 开发人员上阅读了可折叠工具栏布局 那里使用了一个术语 稀松布 它是什么 Scrim 隐藏或掩盖某事的事物 根据 Android CollapsingToolbarLayout 稀松布内容 当滚动位置达到某个阈值时显示或
  • 使 WooCommerce 结账运送字段可见并删除“运送到不同地址?”复选框

    我想知道是否有办法删除 运送到其他地址 复选框 在 woocommerce 结帐页面中 但保持运输字段可见 我努力了 add filter woocommerce cart needs shipping address return fal
  • Node.js 上通过套接字连接 Redis

    由于共享托管 目标主机上的我的 redis 服务器不在端口上运行 而是在非常特定的套接字上运行 可以通过套接字文件连接到该套接字 只有我的用户可以访问 但是 我还没有找到如何通过套接字指定连接node redis and connect r
  • e2e 测试是否应该将数据保存在真实数据库中?

    我读了很多关于 e2e 测试的文章 但我无法理解的一件事是 e2e 测试应该有多 真实 无论我使用什么工具进行 e2e 测试 我发现大多数时候它们都是在本地 开发或 alpha 环境中使用 如果我的应用程序具有身份验证 我是否应该在数据库中
  • 当具有复杂类型时,KnockoutJs 中的值绑定无法进行选择

    我正在尝试在选择元素上使用值绑定 如本小提琴中所述 http jsfiddle net MikeEast nM6dd 2 http jsfiddle net MikeEast nM6dd 2 但是 我似乎无法设置所选选项 值绑定 我知道我可