0

我是 Knockout.js 的初学者,我正在尝试使用自定义绑定,但我不清楚。假设我实现了 2 个名为“color”和“innerText”的自定义绑定。第一个(“颜色”)将边框颜色应用于元素,第二个设置元素的内部文本(让我们暂时忘记内置“文本”绑定......我知道它存在)。在我的自定义绑定 innerText 中,我可以接受用于设置文本颜色的“颜色”选项。现在如果我写:

<div data-bind="innerText: 'Hi everybody', color: 'Red'"></div>

Knockout 如何知道如何处理“颜色”?我在我的自定义绑定“innerText”中使用颜色作为选项,我使用 allBindingsAccessor 获取值,但是淘汰赛如何知道它是相关绑定而不是另一个绑定,以便按顺序应用边框颜色?

4

1 回答 1

0

在您的情况下,如果有另一个名为 的绑定color,那么它将使用您传递给它的值执行,即使您在innerText绑定中使用它也是通过allBindingsAccessor.

因此,Knockout 没有做任何特殊的事情,除了如果您指定一个不存在的 bindingHandler 不会引发错误,因为您可能只是将它用作另一个绑定的选项。

您可以使用的另一种模式是将选项对象传递给您的自定义绑定,例如:

data-bind="innerText: { data: 'Hi everybody', color: Red }"

于 2013-02-11T20:23:54.137 回答