问题标签 [knockout-binding-handlers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
787 浏览

google-maps - 淘汰谷歌地图:组件与自定义绑定处理程序

当我搜索“ Knockout Google Maps ”时,我发现相当多的基于 KO 的 Google Maps 实现。我能够找到的所有这些都采用了使用自定义绑定处理程序的方法,而我最初打算将其实现为 Knockout 组件。

例子:

谁能指出我正确的方向,为什么在这里更喜欢自定义绑定处理程序而不是 KO 组件

我计划的用例是这样的:

我正在实现一个带有地址搜索结果列表的页面。到目前为止的列表是一个 KO 组件,每个列表条目由另一个 KO 组件生成,该列表组件在 foreach 绑定中重复调用该组件。在这个搜索结果列表旁边,我需要一个谷歌地图,在地图中也显示结果条目。列表、列表条目和地图之间也会有相当多的交互。

这是我到目前为止所得到的:

0 投票
1 回答
317 浏览

knockout.js - 二维淘汰赛排序不更新 UI

我正在创建一个具有第一维(表中的行)和第二维(一行中的单元格)的二维可排序容器。

单元格应该可以在一行内拖到现有行,也可以拖到动态创建的新行。应该动态删除空行。单元格被配置为占据一行中的所有空间。

如何编辑自定义 Knockout 可排序绑定(例如update事件)?

前:

前

后:

后

更新问题:

  • 将单元格 ( .sortable-cell) 拖到新行 ( .sortable-table/ .sortable-row) 时,视图模型会更新,但 UI 不会更新
  • 将单元格 ( ) 拖动到新行 ( / ).highlight-horizontal时不显示占位符 ( ).sortable-cell.sortable-table.sortable-row

0 投票
1 回答
809 浏览

knockout.js - 淘汰选项文本/选项值绑定将不起作用

为什么此绑定失败并出现“未找到值”异常?

选项数组的数据是这样的:

我已经解决了自己的问题,但是设置了 StackOverflow 面包屑路径,这样其他人就不会像我试图解决这个问题那样浪费时间。;-)

0 投票
1 回答
47 浏览

javascript - 在淘汰赛中了解可观察对象在 foreach/descendant 绑定中的根模型中的位置

这是一个非常利基的场景,理想情况下我需要能够绑定一个属性,但能够知道该属性在根视图模型中的位置。

例如,假设我有对象:

现在的问题是,如果我有这样的绑定:

现在我需要能够在name这里解决rootModel.groups[currentIndex].name反对只是name。目前我认为没有办法在绑定中知道属性是"name"因为它只看到值,所以我可能需要将它作为字符串传递,或者在绑定看起来的对象上有一个自定义属性为了。无论哪种方式,我都需要能够以某种方式获取绑定范围内每个可观察对象(与其范围内应用的 rootModel 相关)的属性路径。

我知道这看起来很疯狂,而且确实如此,但如果可能的话,这仍然是我需要做的事情。所以 foreach 只是子绑定范围发生变化并被包装的一种场景,因此对于所有场景,我需要能够构建一个property-path用于此自定义绑定的 for 属性。

那么有没有办法做到这一点?

0 投票
1 回答
411 浏览

javascript - 淘汰绑定处理程序更新未针对 observableArray 更改触发

我正在尝试通过单个绑定处理程序访问多个值,如果在 valuesAccessor 绑定对象内发生 observableArray 更改,则绑定处理程序更新不会触发。

演示:(也在 jsFiddle 上):

0 投票
1 回答
48 浏览

knockout.js - Knockoutjs 自定义绑定处理程序方法未触发

我试图通过在淘汰赛中创建一个自定义 bindingHandler 来使 knockoutjs 和 bootstrap 模态一起玩,但由于某种原因,bindingHandler 初始化和更新函数永远不会触发(我添加了打印以验证它是否运行,这证实它没有)

这是我的 bindingHandler 声明:

还有我的html:

有任何想法吗?

0 投票
1 回答
806 浏览

knockout.js - 淘汰赛自定义绑定更新不起作用

我正在尝试为 hasFocus 添加一个自定义活页夹,使其像这样工作

};

但它永远不会进入这个功能。我正在关注这个例子

http://jsfiddle.net/mbest/tAGmp/

问题是,我的输入字段在开始时是不可见的。如果我点击某个地方,它就会变得可见。输入字段如下所示

我试图让它与硬代码值一起工作。如果它有效,那么我会将其更改为一些可观察的。有什么想法吗?

0 投票
1 回答
37 浏览

knockout.js - 淘汰赛绑定迭代

我有一个场景,基于 Observable 标志我需要迭代 ABC 和 XYZ

当前代码

我感觉代码重复。

有什么方法可以将两个 html 函数组合成一个函数吗?

由于其他一些原因,我只想更改 HTML 部分...

我是新来的淘汰赛。有人能帮我吗?

0 投票
1 回答
47 浏览

javascript - KnockoutClassBindingProvider:如何执行 foreach 绑定

我在 github 上看到了基本示例,但我无法让它与我的代码一起使用。我应该补充一点,我正在使用 durandal。

如何让绑定工作?我做错什么了吗?

输入.js

表单.js

模块.js

Module.html这不起作用。

Module.html这确实有效,但我没有为 foreach 使用 classBindingProvider。

没有错误消息,但绑定永远不会发生。我只得到 3 个空输入字段。

0 投票
1 回答
220 浏览

knockout.js - 如何将 Knockout 绑定应用于元素?

我想使用自定义敲除绑定处理程序动态设置根元素的字体大小,该处理程序根据浏览器窗口的宽度进行计算。

当我尝试应用绑定时,似乎什么也没发生,所以我尝试应用一个简单的 css 绑定:

<html data-bind="css: { bindinghandlertest: true }">

但是绑定处理程序似乎没有添加该类。

问题:KO 绑定是否只能应用于<body>及其子项?

注意:我通过简单地ko.applyBindings();在 DOM 就绪时调用一次来初始化整个页面上的所有绑定,根本没有任何参数。