Knockout 将键值对象绑定到下拉菜单

2024-02-01

我有以下型号:

var allCategories = [{
    id: 1,
    name: 'Red'},
{
    id: 5,
    name: 'Blue'}];

function model() {
    self = this;
    self.name = ko.observable("");
    self.categoryId = ko.observable(-1);
    self.categoryName = ko.computed(function() {
        if (self.categoryId() == -1) return "";
        return getCategoryNameById(self.categoryId()).name;
    });
}

function getCategoryNameById(id) {
    return _.find(allCategories, function(cat) {
        return cat.id == id;
    });
}

我想提供一个下拉菜单来选择类别,但我不知道如何绑定它。 也许我对我的模型使用了错误的方法,但这很可能是我从服务器获取数据的方式,所以我尝试用我的 JS 来解决这个问题。

我尝试过这样的事情:

<select data-bind="options: categories, optionsText: 'name', value: 'id', optionsCaption: 'Categorie...'"></select>

但我不知道如何将下拉值连接到模型categoryId.

Here is a fiddle http://jsfiddle.net/kannix/S5Jbt/5/具有 name 属性的工作绑定。


对于您的列表框,您需要指定:options, optionsText, optionsValue, and value. value(这是当前选择的值)应该指向您的model.categoryId(). And optionsValue是属性名称,从中获取列表的值:

<select data-bind="options: categories, optionsText: 'name', optionsValue: 'id', value: $root.model.categoryId(), optionsCaption: 'Categorie...'"></select>

就是这样。和工作小提琴:http://jsfiddle.net/Y7Nrc/ http://jsfiddle.net/Y7Nrc/

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

Knockout 将键值对象绑定到下拉菜单 的相关文章

  • 使用knockout js实现html5拖放照片,durandal 2.0

    我在淘汰赛 js 视图模型中有一个照片列表 我希望能够在它们之间交换 实际上更正确的术语是将一张复制到另一张上面 这是我的简化视图模型 define durandal app knockout jquery function app ko
  • jQuery Mobile 与 KnockoutJS ListView 问题

    我正在尝试的这个例子 列表视图最终并没有漂亮的外观 谁能建议我做错了什么 这种情况特别发生在 data inset true 上 http jsfiddle net xQ9Uu 1 http jsfiddle net xQ9Uu 1 如果我
  • 如何从 Knockoutjs toJS() 中排除某些属性

    我有以下模型 var model A One B Two C Three 我将各种 UI 元素绑定到这些字段 效果很好 不过 我将模型转换回 JavaScript 对象 以便可以将任何更改保存到服务器 var goingToServer k
  • Knockout :找出哪个可观察触发了计算

    我有一个具有多个可观察值的对象 计算中有没有一种方法可以知道哪些可观察的变化 从而知道哪个可观察触发了计算 先感谢您 马修 如果没有详细说明您想要实现的目标 我将发布此内容 希望它能有所帮助 跟踪更改的一个简单方法是使用 subscribe
  • 在 KnockoutJS 中更改模型数据时,Javascript 内存泄漏

    我们正在构建一个相当大的单页应用程序 使用 KnockoutJS 作为 数据处理程序 问题是 当更改模型数据时 垃圾收集器不会处理旧模型 看起来如此 该应用程序有大约 12 个不同的模型 其中包含计算的可观察量 您可以使用它们检索关系 在
  • Knockout 将 css 类绑定到观察到的模型属性

    我想将 divs css 类绑定到视图模型的属性 如下所示 div 但这会产生结果 div class 0 1 2 3 这是视图模型 myViewModel selectedPriority ko observable High Compa
  • 使用来自服务器和 ko.mapping 创建函数的元数据处理任意选项

    我有一个视图模型 其中一些可供选择的属性值由其他属性决定 这是通过requires field var clusterOptions name None sku 0 price 0 name Standard MySQL Cluster s
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • WebDriver:更改事件未触发

    我有一个使用 KnockoutJS 的应用程序 我正在尝试编写一些测试表单的测试 如果您不了解 KnockoutJS 简单来说 它提供了从我的视图到我的数据模型的绑定 这意味着当我在输入字段中键入值时 我的基础对象会自动使用该输入字段值进行
  • Hasfocus 与 Firefox 的绑定问题

    我正在开发一个应用程序 它利用可观察数组来呈现可编辑的用户 ID 信息表 该应用程序在 Chrome 中运行得非常好 但在 Firefox 中运行时遇到问题 就我的目的而言 这两个浏览器是我目前唯一关心的 我通过以下方式使用 单击编辑 功能
  • Knockout JS 中的多个扩展器不起作用

    刚刚在KO中找到了出路 所以请温柔一点 每个扩展器单独工作 但是当我链接它们时 第一个 重置 不会触发 JavaScript ko extenders reset function target var initialValue targe
  • Knockout.js:有条件绑定div的title属性

    我的页面上有一个 viewModel 它保存一些设备当前状态概述的数据 到目前为止 除了一个问题之外 一切都运行良好 我需要根据 viewModel 中的另一个值设置 div 元素的 title 属性 我知道您基本上可以像这样设置 titl
  • 将某些 observableArray 对象属性转换为 observable

    假设我有这个相同类型对象的数组 var people status 0 name name1 status 1 name name2 我不仅希望它是 observableArray 而且我只想观察每个对象的状态属性 想象一下对象本身可能会被
  • 淘汰foreach绑定无序列表

    首先 圣诞快乐 希望圣诞节那天没有其他人在工作 除非他们是出色的专家并且真的很想帮助我 我正在使用神话般的jQuery 列导航插件 http code google com p jquery column navigation 以多列方式向
  • 使 Knockout applyBindings 将选择选项视为数字

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

    在淘汰赛排序中 我知道您可以使用禁用可排序列表isEnabled in the sortable捆绑 我还知道您可以使用禁用移动项目cancelDrop in a beforeMove功能 问题是 isEnabled禁用整个列表 并且can
  • ko.applyBindings 上是否有某种回调可用?

    Using 淘汰赛 js questions tagged knockout js在我们当前的项目中 我们已经多次遇到过这一点 我怎样才能确保某些 Javascript 代码只被执行after页面上的所有绑定均已通过 Knockout 应用
  • Onclick使用knockout js绑定图像

    我想显示来自 allDoorColorStandard 的图像 HTML 单击 颜色数据 div 我想更新图像 在警报中 我正在获取图像 URL 现在需要绑定到图像标签中 div img class mappimg width 45 hei
  • 删除克隆元素上的淘汰赛 js 绑定

    我正在使用 knockout js 模板绑定功能将项目集合渲染到元素
  • 如何将当前元素传递给 Knockout.js 绑定中的 Javascript 函数?

    因此 我尝试根据是否选中子复选框 使用 Knockout js 将类添加到元素 为此 我试图通过this作为我的函数的参数 目前 我的精简 DOM 结构如下 tr td td tr

随机推荐

  • 如何在 Ruby 中找到两个 Date 对象之间的天数?

    如何找到两个 Date 对象之间的天数 从结束日期减去开始日期 endDate beginDate
  • 解析 haskell 保留注释/格式

    我想做一些源代码转换 自动导入列表清理 并且我想保留注释和格式 我断断续续地听到过一些关于执行此操作的解析器的内容 我认为是 ghc 解析器 看来我可以通过从文件中提取内容来使用 hs src exts Language Haskell E
  • 库模块中的崩溃报告

    我已经尝试过 crashlytics 但不支持 这是我从他们团队得到的回复 感谢您对此的关注 Crashlytics 或 Fabric 的任何部分都不能包含在分发给外部应用程序的任何 SDK 中 正如您提到的 这将导致 SDK 和应用程序发
  • 查看运行“sbt”中“.sbtopts”中的选项

    根据这有帮助post https stackoverflow com a 14561346 409976 我删除了我的 sbtconfig 并添加了 sbtopts cd myProject cat sbtopts J Xmx4G J XX
  • 如何将 UIImage 转换为 BMP 并另存为数据(不是 JPG 或 PNG)

    我正在我的 iOS 应用程序 Swift 3 和仅支持 BMP 格式的应用程序 在 MS Windows 上 之间同步 BMP 图像 在 MS Windows 应用程序上创建的 BMP 图像作为 base64 字符串下载 另存为Data并使
  • 当源中存在其他静态文件时,为什么我无法在 django 项目中添加静态文件?

    我正在尝试为 Heroku 构建一个 Django 应用程序 并且已经完成了民意调查教程并且Heroku 文档 https devcenter heroku com articles django assets 当使用基本的 Django
  • Weld/CDI 的最佳调试技巧是什么?

    Java EE 6 的优点之一是新的依赖项注入框架 具有 Weld 参考实现的 CDI 它促使我们开始以与实现无关的方式内部迁移到 JSR 330 其明确目标是能够拥有核心 jar 被冻结 然后能够添加额外的 jar 提供新的模块来替换核心
  • 删除未使用的 HTTP 处理程序以提高性能和安全性

    在哪里可以获得所有默认 IIS HTTP 处理程序的功能列表 我需要文档 我读过一些博客 出于性能和安全原因 建议删除数十个未使用的 HTTP 处理程序 例如 建议删除 TraceHandler Integrated 和 TraceHand
  • 取消使用 Hangfire.io 计划的正在运行的作业

    我使用hangfire io 库安排作业 我可以观察它在内置仪表板中的处理情况 但是 我的系统要求可以从仪表板取消该作业 有一个选项可以删除正在运行的作业 但这只会更改数据库中作业的状态 并不会停止正在运行的作业 我在文档中看到有可以通过的
  • 如何从经验分布函数中制作样本

    我正在尝试在 Python 上实现非参数引导 它需要获取一个样本 从中构建一个经验分布函数 然后从该 edf 生成一堆样本 我该怎么做 在 scipy 中 如果您知道描述它的确切公式 我只能找到如何创建自己的分布函数 但我只有一个 edf
  • 解释为什么 Array.sort 这样做

    当我们尝试对数字数组进行排序时 人们说使用这个 var numbers 4 2 5 1 3 numbers sort function a b debugger return a gt b 1 1 debugger print number
  • 在SAS中使用循环重命名索引列?

    我有一个数据集 其中变量为 col1 col2 col3 col15 我想将它们重命名为new1 new2 new3 new 15 我可以写15次类似的rename col1 new1 在 SAS 中 但如何使用循环实现此目的 谢谢 首先
  • pip install MySQL-python 返回无法找到 vcvarsall.bat

    我一直在努力pip install MySQL python在 Windows 7 上但它返回unable to find vcvarsall bat 我正在使用Python 3 4 我怎样才能以简单的方式完成这项工作 而无需经历安装 Vi
  • Android 如何查看版本

    我在 2 2 环境中完成了我的应用程序 当我在旧版本中安装我的 apk 时 我收到解析器错误 是否有可能显示我们自己的消息而不是解析器错误消息 据我看来 事实并非如此 做这样的事情 private int GetVersion int ve
  • 如何获取 std::thread() 的 Linux 线程 ID

    我正在玩std thread我想知道如何获得新的线程IDstd thread 我不是在谈论std thread id而是给予线程的操作系统 ID 您可以使用pstree 这仅供我所知 并且仅针对 Linux 平台 不需要可移植 我可以像这样
  • 阻止 jQuery 重复,示例已附

    我必须将 jQuery 附加到发票上 有时我必须批量打印多张发票 当这种情况发生时 我的每张发票都会出现完全相同的 jQuery 并且每次创建我不需要的额外元素时它都会运行 有没有办法让出现多次的 jQuery 仅在它最后一次出现在代码中时
  • 使用 SQL 查询查找最接近的匹配字符串及其子字符串

    我想编写一个查询 它将按顺序获取给定字符串及其子字符串的最接近的匹配字符串 例如 假设我有一列中包含所有名称的表 如果我想搜索名字 ATUL 那么结果应该首先列出所有匹配的不同名称 ATUL then ATU then AT 进而 A 最后
  • href 中的内联 JavaScript

    你怎么能做这样的事情 a href myLink a 并在单击链接时执行 href 中的 js 直接把JS代码放进去就可以了 a href fsljk a 不过 您不应该执行内联脚本 您应该不引人注目地附加事件处理程序 a href bla
  • 同时检测父视图和子视图的 Android-Touch 事件

    目前以下是我的应用程序的布局 LinearLayout Button ScrollView RelativeLayout EditText 我在所有这些之上创建了一个透明的 LinearLayout 实现了 OnTouchListener
  • Knockout 将键值对象绑定到下拉菜单

    我有以下型号 var allCategories id 1 name Red id 5 name Blue function model self this self name ko observable self categoryId k