gpt4 book ai didi

javascript - 具有多个输入的自定义 Knockout 绑定(bind),其中一个包含索引数组

转载 作者:行者123 更新时间:2023-11-30 18:05:07 24 4
gpt4 key购买 nike

Here is an example of my problem on jsFiddle.

我想创建一个接受两个输入的自定义绑定(bind)。这可以通过将一组值传递给绑定(bind)来完成。例如,这个绑定(bind):

ko.bindingHandlers.whatever = {
update: function (element, valueAccessor) {
var args = valueAccessor();
element.innerHTML = args[0] + " " + args[1];
}
};

将接受两个输入并将它们连接起来,中间有一个空格。那么类似 <p data-bind="whatever: ['First', 'Second']"></p> 的东西将显示为 <p>First Second</p> .

这也适用于变量。因此,如果我在 View 模型中有一些数据:

var vm = {
category: "Category",
people: [
{name: "Bob"},
{name: "Ann"}
]
};
ko.applyBindings(vm);

我可以这样做:

<p data-bind="whatever: [category, 'blah blah blah']"></p>

它会显示:

<p>Category blah blah blah</p>

当我想将嵌套变量传递给我的绑定(bind)时,我的问题就出现了。像这样:

<p data-bind="whatever: [people[0].name, 'blah blah blah']"></p>

我希望它显示 <p>Bob blah blah blah</p> ,但我收到此错误消息:

错误:无法解析绑定(bind)。消息:SyntaxError:缺少 ] 在元素列表之后;绑定(bind)值:随便:[people[0].name, 'blah blah blah']

(再一次,here's a link to this jsFiddle。)

这看起来很奇怪,好像它开始感到困惑并认为 [0]是另一个列表而不是 people 上的索引.知道为什么会发生这种情况或如何解决该问题吗?

我对 Knockout 不是很有经验,所以很可能我做的事情非常错误。例如,我什至很难在网上找到人们创建直接从模板获取多个输入的自定义绑定(bind)的示例(这是出于某种原因不应该做的事情吗?)。

最佳答案

除了传递数组之外,不完全确定问题似乎是导致问题的原因。我替换为命名参数并且它有效:

http://jsfiddle.net/37Py6/

还请注意我使用了

ko.bindingHandlers.text.update(...)

,为了不做 DOM 操作是 knockout 代码。

关于javascript - 具有多个输入的自定义 Knockout 绑定(bind),其中一个包含索引数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15991804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com