问题标签 [bindinghandlers]

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 投票
1 回答
2823 浏览

javascript - 虚拟元素的淘汰赛绑定不起作用

我正在处理一些自定义绑定,其中一个我希望能够从一些字符串数组中显示一个表格。

小提琴

我将其简化为这个自定义绑定:

这是模板的内容:

还有一些示例数据。

我正在使用 Knockout 3.0,但是任何可以在 Knockout 2.x 上工作的东西也可以在这里工作。如果您查看小提琴,则该<thead>部分显示正确,但主体的绑定却没有。如果我内联模板并使用with绑定(如with: table.

0 投票
0 回答
416 浏览

knockout.js - viewModel 和 bindingContext 在我的 bindingHandlers 中未定义

我有以下绑定处理程序:

在我看来:

在初始化部分你有element, valueAccessor, allBindings, viewModel, bindingContext.

我不知道为什么,但是viewModelbindingContext未定义。

任何想法?

谢谢。


更新

我发现如果我在代码中注释一行:

然后我可以访问viewModel我的 init 函数。这似乎是问题所在。此外,当前版本的knockout.Validation是 1.01,似乎与我需要的不兼容(viewModel 额外属性)。

希望有人可以帮助我。

谢谢。

0 投票
1 回答
221 浏览

knockout.js - 将缺失项插入绑定到 ko.bindingHandlers.options 的数组中

我有以下情况。

示例 JavaScript:

这在值和选项 bindingHandlers 的帮助下绑定到 HTML-select。

可能当前选定的项目未包含在所有可用项目的列表中,因为它已在服务器上被删除,并且不应再被选中。由于历史原因,某些实体仍将 KEY_1 的值设置为 id。我想要的是,如果 id 的值不再在列表中,它应该作为虚拟条目添加到列表中,由客户端上的 bindingHandler 动态地称为“已删除”。

我尝试了以下

但这不起作用。谁能给我一个提示来实现这一目标?

更新:我创建了一个 jsfiddle。它很好奇,因为代码在 jsfiddle 中工作,但不在我们的开发分支中。我必须检查原因。但也许有人有更好的想法来实现该功能。

http://jsfiddle.net/philipoo/C46A8/

更新:正如我所见,bindingHandlers 的顺序是关键任务。也许这解决了我的问题。

0 投票
2 回答
2294 浏览

javascript - 自定义淘汰赛绑定意外触发两次

我编写了一个自定义绑定处理程序来将我的视图模型数据绑定到一个 highcharts 图表。这实际上有两个部分,一个绑定 highcharts 所需的初始配置,第二个将系列绑定到图表。

这是bindingHandler代码

现在我为此设置了 2 个测试,第一个按预期工作。它绑定了一个带有多个系列的图表,当我添加到绑定到它的可观察数组时,series它只更新一次图表。当您单击“添加”按钮时,请查看此小提琴并观看控制台。你会得到的输出是

更新容器 Object { chart={...}}
seriesUnwrapped 容器 [Object { name="Scenario0", color="red", data=[9]}, Object { name="Scenario1", color="green",数据=[9]}]

表明我们只经历过一次上面的代码。

现在检查我的第二个小提琴:http: //jsfiddle.net/8j6e5/9/。这略有不同,因为 highcharts 初始配置是computed可观察的,系列也是如此。当您单击此按钮上的“添加”按钮时,您会看到绑定执行了两次:

更新 container2 对象 { chart={...}, xAxis={...}, series=[1]}
seriesUnwrapped container2 [Object { name="Scenario2", color="blue", data=[2]}]
更新 container2 Object { chart={...}, xAxis={...}}
seriesUnwrapped container2 [Object { name="Scenario2", color="blue", data=[2]}]

我猜想allBindings.get('series')在我的 highcharts 绑定处理程序中使用我设置了对它的依赖项,并且当两个绑定都更改时,它执行了 highcharts 绑定两次。我的问题是,有没有办法阻止这种情况,或者以任何其他方式编写此功能以防止这种情况发生?

0 投票
1 回答
864 浏览

knockout.js - 媒体编辑器自定义绑定

中等编辑器.js

这就是我声明我的自定义绑定的方式,但问题是当我在编辑器中输入时,底层 observable 会更新。这是我在标记中使用它的方式。

这是我的虚拟机绑定到我的html。

初始自定义绑定按预期工作,因为我可以看到编辑器脚本被激活并且值被传递给编辑器我的问题是在编辑器中更新我的 html 后我无法更新我的 observable。

0 投票
1 回答
127 浏览

knockout.js - 敲除绑定在键入时有效,但在条形码时无效

我有一个适用于 Keyup 的自定义绑定,当用户手动输入数据时,valueAccessor().call 工作得很好,并输入了所需的下一个函数。但是,当我们对相同的数据进行条形码化并发送相同的返回键时(我已经检查了使用两种方法发送的最后一个 keyCode 是否为 13), valueAccessor 不会进入下一个函数并退出。

我怀疑这可能与条形码数据输入字段的速度和随后的“输入”键有关。减慢输入条形码字符的速度会有所帮助吗?如果是这样,你建议什么方法?

0 投票
1 回答
814 浏览

knockout.js - 淘汰赛自定义绑定处理程序不更新子元素

我在创建上下文的自定义敲除绑定处理程序时遇到问题。演示在这里:http: //jsfiddle.net/gf3tfarz/14/

当“容器”应用于可观察数组时,它不会更新子元素。

这是自定义绑定处理程序:

我想要一种在演示工作中出现两个使用“容器”的示例的方式。

请注意,使用“with”可以正常工作。

0 投票
1 回答
160 浏览

knockout.js - Polymer 核心选择器的淘汰自定义绑定处理程序 - 设置“选定”属性不会更新元素

绑定处理程序和 HMTL。

当它点击更新功能时,如果我手动更新单选组元素的选定属性,它会立即更改为“选择”。

$(element).attr('selected', '0');

那么 $(element).attr('selected') 总是'selected'。

我不知道为什么它没有保留价值。

0 投票
0 回答
92 浏览

javascript - KnockoutJs BindingHandlers 取消验证

我正在使用 knockout.js 并添加一个 BindingHandlers 来将 observable 格式化为十进制。问题是,当我应用此绑定时,所需的验证消息没有出现。

这是代码

——可观察的

--- 和输入

如果我使用 'value' 而不是 'commaDecimalFormatter',则验证工作完美。

有什么线索吗?

0 投票
2 回答
814 浏览

jquery - .scroll() jquery 在淘汰赛自定义绑定处理程序中不起作用?

我在 jQuery 中使用 Durandal (requireJS + knockoutJS)

jquery 1.10.2 + knockoutjs 2.3.0 + requirejs

即使是简单的代码也行不通

甚至淡出();淡入()不工作

每个功能都正常工作

有什么猜测吗?谢谢