我是Knockout.js的初学者,我正在尝试使用自定义绑定,但这对我来说并不清楚。让我们假设我实现了2个名称为“color”和“innerText”的自定义绑定。第一个(“颜色”)将边框颜色应用于元素,第二个设置元素的innerText(让我们忘记关于内置“文本”绑定的片刻......我知道它存在)。在我的自定义绑定innerText中,我可以接受“颜色”选项来设置文本颜色。现在,如果我写:
<div data-bind="innerText: 'Hi everybody', color: 'Red'"></div>
Knockout如何知道如何处理“颜色”?我在自定义绑定“innerText”中使用颜色作为选项,我使用allBindingsAccessor获取值,但是敲除如何知道它是一个相关的绑定而不是另一个边界颜色的绑定按顺序应用?
答案 0 :(得分:0)
在您的情况下,如果有另一个名为color
的绑定,那么它将使用您传递给它的值执行,即使您在innerText
绑定中使用它allBindingsAccessor
1}}。
所以,Knockout没有做任何特别的事情,除非你指定一个不存在的bindingHandler它不会抛出错误,因为你可能只是将它用作另一个绑定的选项。
您可以使用的另一种模式是将选项对象传递给自定义绑定,如:
data-bind="innerText: { data: 'Hi everybody', color: Red }"